nohup
命令用于在后台运行程序,使其不受挂起(SIGHUP)信号的影响。而 disown
命令用于从当前 shell 的作业表中移除一个或多个作业,使它们不再受到 shell 的控制。
要配合使用 nohup
和 disown
命令,可以按照以下步骤操作:
nohup
命令在后台运行程序,并将输出重定向到一个文件。例如,运行名为 my_script.sh
的脚本:nohup ./my_script.sh > output.log 2>&1 &
这将在后台运行 my_script.sh
,并将标准输出和标准错误输出重定向到 output.log
文件。&
符号表示将进程放入后台运行。
jobs
命令查看当前 shell 的作业表:jobs
这将显示当前 shell 中的所有后台作业及其作业编号。
disown
命令将作业从作业表中移除。例如,如果要移除作业编号为 1 的作业,可以执行:disown %1
或者,如果要移除所有后台作业,可以使用:
disown -a
现在,即使关闭终端或注销,这些作业也会继续在后台运行,不受挂起信号的影响。