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命令运行的进程不会因意外终止而中断。