问题描述
我需要使用 powershell 启动一个进程(java 服务器),然后能够在启动的进程/服务器的上下文中执行特定的命令。对于上下文,如果我正常启动服务器,然后我会得到一个控制台窗口,我可以在其中输入不同的命令,如状态、停止等。当然,它们只能在服务器进程中工作,而不能在 powershell 中工作。
那么如何使用 powershell 启动一个进程,让它运行并稍后访问/发送命令到该进程?
这是我迄今为止尝试过的:
$SERVER_JAR = "myServer.jar"
$MIN_RAM = "1024M"
$MAX_RAM = "5G"
$javaArgs = @('-server',"-xms$($MIN_RAM)","-Xmx$($MAX_RAM)","-jar $SERVER_JAR",'nogui') # some arguments for the java process
start-process java -ArgumentList $javaArgs -NoNewWindow -Wait # starting the java server process in the same window/process
if (condition) {
stop # This specific stop command should be executed inside the java server process,because it does ensure the server is saved etc. before shutdown
}
遗憾的是,带有“stop”的 if 永远不会到达,只有当我在打开的 powershell 窗口中手动输入 stop 时,才会执行其余代码。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)