在远程ubuntu服务器上从后台运行进程,从ubuntu服务器

时间:2016-02-15 08:25:54

标签: ubuntu server remote-access nohup

我正在尝试使用以下命令在远程Ubuntu服务器上在后台运行进程:

sshpass -p PASSWORD ssh root@HOST 'nohup COMMAND-THAT-BLOCKS &'

不幸的是,这个过程结束了。

当我跑步时

'nohup COMMAND-THAT-BLOCKS &'

在远程服务器控制台中,它可以正常工作。

我的猜测是,当我关闭ssh连接时,进程正在终止(因为用户已断开连接)

即使用户断开连接,我也希望这个过程保持活跃。

2 个答案:

答案 0 :(得分:0)

另一种方式,也许首选(取决于您的需要)是使用screen。根据{{​​3}}帖子,您可以连接到远程屏幕并按以下方式运行命令:

sshpass -p PASSWORD ssh root@HOST 'screen -r -S "<screenName>" "command/or/script/to/execute"'

稍后将允许您以交互方式连接到HOST并附加该屏幕会话,这对于nohup是不可能的(据我所知)

答案 1 :(得分:0)

您可以使用tmuxscreen来完成此操作。我更喜欢screen的简单性。您可以从here找到screen Ubuntu文档。

  • ssh到您的远程服务器。输入屏幕。之后你就可以开始了 你想要的过程。

  • Ctrl - A 然后 Ctrl - D 从屏幕会话中分离。这会使您的进程运行。之后,您可以注销远程服务器。

  • 要重新开始屏幕会话,请再次输入 screen -r

您还可以使用屏幕-S名称

命名您的屏幕会话