关闭SSH时继续SSH后台任务/作业


27

我有和这里相同的问题,甚至超出了这个范围。

如果我注销/退出SSH连接,则我的程序需要在后台运行。退出之前,我键入bgjobs检查后台运行任务,但是退出SSH后,该程序无法运行,当我关闭SSH窗口时,它将关闭。

如果我希望我的程序在关闭SSH窗口后仍能运行,该怎么办?我确实使用过,nohup screen但也无法使用,还是我错过了一些东西?


欢迎来到超级用户!请不要在问题中回答。可以(大约7小时内)使用“ 回答您的问题”按钮将其发布为下面的答案。谢谢。(还请注意,无需<br/>在帖子中添加s。只需根据需要创建段落即可。在使用时,请使用大写字母。这样会使您的帖子更易于阅读。)
slhck

顺便说一句,无需使用bgnohup使用时screen。同样这个问题有关。
justbrowsing

您进行检查此线程@堆栈溢出stackoverflow.com/questions/285015/…–
Ashildr

Answers:


46

使用时screen,需要在退出前先用+ 分开CTRL+ADssh

另外,如果您想直接在屏幕上运行流程,则可以使用

screen -dmSL [session name] [commands]
  • -d 启动屏幕会话并立即从中分离
  • -m 强制创建新的屏幕会话
  • -S 让您为会话命名
  • -L 打开登录到 ~/screenlog.0

例:

screen -dmSL workstuff myscript.sh

然后,您可以:

继续使用 screen -x workstuff

要么

检查日志文件 less -r ~/screenlog.0


14

使用tmux。我什至不确定是否screen仍在积极开发中。这是一种偏爱,但是作为使用的人tmux,我可以证明它在大约5分钟内就设置好并且运行良好。

在基于Debian的系统上(在远程计算机上):

sudo apt-get install tmux

然后输入tmuxEnter,运行所需的任何过程,然后按Ctrl+,B然后D退出(离开tmux会话)。然后,您可以注销SSH。

当您需要再次回来/检查它时,启动SSH,然后输入tmux attach。它将带您返回到tmux会话。

tmux具有更多功能,如此处所述。但是,这应该可以解决您的直接问题。

祝好运!


7

最后,我使用解决了这个问题screen

在屏幕模式下,使用断开连接CtrlAD。然后,您可以关闭SSH窗口。


5

nohup用法:下面的第一个命令在后台启动程序abcd,以使后续注销不会停止该程序。

$ nohup abcd&

$出口

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.