nohup 的替代品?

3ks*_*stc 7 nohup

我有一个init.d脚本,我希望它在后台工作,即使我从终端退出。但是,我尝试让它在后台运行nohup但“没有希望”,因为当我退出时,通过查看pstree我可以看到 PID 消失并因此nohup停止工作。

问:除了nohup将在前台工作的脚本推送到后台之外,还有其他方法,即使您退出终端后?

3ks*_*stc 6

好的,所以有几个选择:

  • disown

您可以组合disown&推送您的脚本到后台

$ disown [your_script] &
Run Code Online (Sandbox Code Playgroud) [your_script]可以通过jobs命令检查。输入后,您将看到:

$ jobs
[1]+ Running [your_script]
Run Code Online (Sandbox Code Playgroud)

杀戮可以通过kill %11指上面看到的作业号。这是更好的替代方案,nohup因为它不会让nohup.out文件散落在整个文件系统中。

  • screen

是一个“虚拟”终端,您可以从“真实”终端运行它(实际上今天所有的终端都是“虚拟”的,但那是另一天的另一个话题)。Screen即使您的 ssh 会话断开连接,它也会继续运行。您在screen会话中启动的任何进程都将与该屏幕会话一起运行。当您重新连接到服务器时,您可以重新连接到 screen 会话,除了经过的时间之外,一切都好像什么都没发生过一样。

优秀来源:Speaking UNIX: Stayin' alive with Screen”