![如果我从 shell 注销,如何保持从 shell 启动的命令继续运行?](https://linux22.com/image/1034091/%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%8E%20shell%20%E6%B3%A8%E9%94%80%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BF%9D%E6%8C%81%E4%BB%8E%20shell%20%E5%90%AF%E5%8A%A8%E7%9A%84%E5%91%BD%E4%BB%A4%E7%BB%A7%E7%BB%AD%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
有哪些方法可以使从 shell 启动的命令在从 shell 注销后继续运行?
答案1
答案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 &