nohup(no hang-up)命令用于在Linux和Unix系统中使进程忽略挂起(SIGHUP)信号,从而在用户退出系统或关闭终端后继续运行
使用nohup命令启动进程:
在启动进程时,使用nohup命令,并将输出重定向到一个文件。例如,如果你要运行名为my_script.sh的脚本,可以使用以下命令:
nohup ./my_script.sh > output.log 2>&1 &
这里,>将标准输出重定向到output.log文件,2>&1将标准错误重定向到标准输出,&将进程放入后台运行。
使用disown命令:
如果进程已经在运行,你可以使用disown命令将其从当前shell会话中分离,从而避免接收到SIGHUP信号。首先,使用ps或pgrep命令找到进程ID(PID),然后运行:
disown -h %PID
这里,-h选项表示忽略SIGHUP信号。
使用screen或tmux工具:
screen和tmux是终端复用器,允许你在单个终端窗口中运行多个终端会话。当你使用这些工具启动进程时,即使关闭终端或断开连接,进程也会继续运行。要使用这些工具,请先安装它们(如果尚未安装),然后运行screen或tmux命令启动新会话。在新会话中,启动你的进程,然后按Ctrl-A接着D(对于screen)或Ctrl-B接着D(对于tmux)将会话分离并返回到原始终端。要重新连接到会话,请使用screen -r或tmux attach命令。
通过以上方法,你可以确保在Debian系统中使用nohup启动的进程在关闭终端或退出系统后继续运行。