如果我从 shell 注销,如何保持从 shell 启动的命令继续运行?

如果我从 shell 注销,如何保持从 shell 启动的命令继续运行?

有哪些方法可以使从 shell 启动的命令在从 shell 注销后继续运行?

答案1

  • 要将应用程序置于后台,请使用&

    command &
    
  • 如果您希望关闭终端并保持应用程序运行,您可以使用以下几个选项:screen 安装屏幕dtach 安装 dtachnohup

    nohup command &
    
  • Screen 很有用,因为您可以重新启动会话,而且 dtach 也很有趣。

  • 请查看以下链接了解更多信息

答案2

一个有用的(bash?)命令是disown。它的好处在于它适用于已经运行作业(顺便说一下,您要放弃的是作业,而不是流程,因此您需要ctrl-Z, bg在对作业运行放弃之前执行此操作。例如,想象一下自己在执行以下操作:

local % ssh some.where.com
remote % verylongscript.sh

现在你意识到你需要离开,但又不想在退出时脚本被终止,所以你

ctrl-Z
remote % bg
remote % disown
remote % exit
local %

现在,在 上remote,您的脚本仍在运行。

答案3

使用 nohup 命令如下:

nohup gedit /home/user/file.txt &

答案4

我用

nohup mycommand &

例如,为了启动 VirtualBox 虚拟服务器,我在远程 shell 中输入以下内容(然后关闭它):

nohup VBoxHeadless --startvm "myvm" --vrdp=off &

相关内容