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

NES*_*NES 14 command-line

从 shell 注销后,有哪些方法可以使从 shell 启动的命令保持运行?

kar*_*k87 12

  • @Kaustubh-P 使用 & 通常是通过“退出”命令关闭终端的好习惯,而不是点击 X 关闭按钮。& 使命令在后台运行。但如果父 shell 关闭。这仍然可以强制后台程序退出。 (2认同)

Yos*_*oun 6

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

local % ssh some.where.com
remote % verylongscript.sh
Run Code Online (Sandbox Code Playgroud)

现在你意识到你需要去但不希望脚本在退出时被杀死,所以你

ctrl-Z
remote % bg
remote % disown
remote % exit
local %
Run Code Online (Sandbox Code Playgroud)

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


Jav*_*era 5

像这样使用 nohup 命令:

nohup gedit /home/user/file.txt &
Run Code Online (Sandbox Code Playgroud)