nohup(no hang-up)命令用于在Linux系统中使进程忽略挂起(SIGHUP)信号,从而确保进程在用户注销后继续运行。以下是使用nohup命令的步骤和注意事项:
基本用法:
nohup command &
command 是你想要运行的命令。& 将命令放入后台运行。输出重定向:
默认情况下,nohup会将标准输出和标准错误输出重定向到当前目录下的 nohup.out 文件。如果你想指定其他文件,可以使用:
nohup command > output.log 2>&1 &
> 将标准输出重定向到 output.log。2>&1 将标准错误输出重定向到标准输出(即 output.log)。后台运行:
使用 & 将命令放入后台运行,这样你可以在不阻塞终端的情况下继续使用终端。
进程ID文件:
如果你需要记录进程ID以便后续管理,可以使用 nohup 结合 & 和 echo 命令:
nohup command > output.log 2>&1 &
echo $! > pidfile
$! 是后台运行的最后一个进程的PID。pidfile 是你指定的PID文件路径。检查进程:
你可以使用 ps 命令来检查进程是否在运行:
ps -ef | grep command
command 是你运行的命令名称。终止进程:
如果你需要终止进程,可以使用 kill 命令:
kill -9 <PID>
<PID> 是进程ID。假设你想运行一个长时间运行的脚本 my_script.sh,并确保它在用户注销后继续运行:
nohup ./my_script.sh > my_script.log 2>&1 &
echo $! > my_script.pid
这样,my_script.sh 将在后台运行,并且其输出会被记录到 my_script.log 文件中。进程ID会被记录到 my_script.pid 文件中,方便后续管理。
通过这些步骤,你可以确保Linux进程在用户注销后继续运行。