nohup
(no hang-up)命令用于在Linux中运行进程,使其在用户退出登录或关闭终端后仍然继续运行
使用nohup
命令启动进程:
语法:nohup command &
例如,要使用nohup
运行名为my_script.sh
的脚本,可以使用以下命令:
nohup ./my_script.sh &
这将在后台运行脚本,并将输出重定向到名为nohup.out
的文件。
使用disown
命令:
如果进程已经在运行,可以使用disown
命令将其从当前shell会话中分离,使其不受挂起(SIGHUP)信号的影响。
语法:disown [job_spec]
例如,要分离正在运行的名为my_script.sh
的脚本,可以使用以下命令:
disown %1
这将从当前shell会话中分离作业1(job 1)。
使用screen
或tmux
工具:
screen
和tmux
是终端复用器,允许您在一个终端窗口中运行多个会话。当您使用这些工具时,即使关闭终端或断开连接,进程也会继续运行。
例如,要使用screen
启动一个新会话并运行my_script.sh
,可以使用以下命令:
screen -S my_session
./my_script.sh
按Ctrl-A
然后按D
将分离会话。要重新连接到会话,请使用以下命令:
screen -r my_session
对于tmux
,过程类似。首先启动一个新会话并运行脚本:
tmux new-session -s my_session
./my_script.sh
按Ctrl-B
然后按D
将分离会话。要重新连接到会话,请使用以下命令:
tmux attach-session -t my_session
通过使用这些方法,您可以确保在Linux中使用nohup
命令运行的进程不会因意外终止而中断。