我正在尝试使用以下命令在远程Ubuntu服务器上在后台运行进程:
sshpass -p PASSWORD ssh root@HOST 'nohup COMMAND-THAT-BLOCKS &'
不幸的是,这个过程结束了。
当我跑步时
'nohup COMMAND-THAT-BLOCKS &'
在远程服务器控制台中,它可以正常工作。
我的猜测是,当我关闭ssh连接时,进程正在终止(因为用户已断开连接)
即使用户断开连接,我也希望这个过程保持活跃。
答案 0 :(得分:0)
另一种方式,也许首选(取决于您的需要)是使用screen
。根据{{3}}帖子,您可以连接到远程屏幕并按以下方式运行命令:
sshpass -p PASSWORD ssh root@HOST 'screen -r -S "<screenName>" "command/or/script/to/execute"'
稍后将允许您以交互方式连接到HOST
并附加该屏幕会话,这对于nohup是不可能的(据我所知)
答案 1 :(得分:0)
您可以使用tmux
或screen
来完成此操作。我更喜欢screen
的简单性。您可以从here找到screen
Ubuntu文档。
ssh到您的远程服务器。输入屏幕。之后你就可以开始了 你想要的过程。
按 Ctrl - A 然后 Ctrl - D 从屏幕会话中分离。这会使您的进程运行。之后,您可以注销远程服务器。
要重新开始屏幕会话,请再次输入 screen -r
您还可以使用屏幕-S名称
命名您的屏幕会话