Windows ssh - 如何在断开连接后保持进程运行
Posted
技术标签:
【中文标题】Windows ssh - 如何在断开连接后保持进程运行【英文标题】:Windows ssh - How to keep proccess running after Disconnect 【发布时间】:2018-07-28 07:26:45 【问题描述】:我想通过 SSH(php 脚本)启动一个 java 进程(Minecraft 服务器)。并且在断开连接时不应关闭它。
我正在使用适用于 Windows 和 64 位 Java 的 Bitvise SSH 服务器。 我可以启动服务器,但如果我与 ssh 服务器断开连接,那么 java 进程(Minecraft 服务器)就会停止。 我试过 PUTTY 但同样的问题。
是否有 cmd 的命令,例如 Linux 的 screen,它会将进程置于后台?
谢谢。
【问题讨论】:
使用tmux
或screen
等工具。
但是在带有cmd的windows上没有linux命令
【参考方案1】:
在超级用户上查看这个问题:Windows - Run process on background after closing cmd
所以你要做的是:
start javaw.exe <arguments>
这将在您与 SSH 断开连接后保持进程运行,这将关闭您发出命令的 CMD 会话。
【讨论】:
这似乎只有在(并且只要)用户登录到 Windows 桌面会话时才有效。至少对我来说,退出 Windows 也会终止在 ssh 会话中打开的进程(从远程计算机)。但是,即使在用户退出 Windows(和 ssh)之后,上面的“powershell Invoke-WmiMethod”答案似乎也能保持进程运行。【参考方案2】:如果您安装了 GNU Coreutils/cygwin,那么您可以运行 start nohup your-command > logfile.txt
,并且当您退出 ssh 会话时它应该会继续运行。这适用于 Windows 10 附带的 OpenSSH 服务器。
【讨论】:
【参考方案3】:LK"我
我正在为 Windows 使用 OpenSSH 服务器。 使用此 Power shell 命令设法使其工作:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList C:\path\your-command.exe
【讨论】:
以上是关于Windows ssh - 如何在断开连接后保持进程运行的主要内容,如果未能解决你的问题,请参考以下文章