nohup(no hang-up)命令在 Linux 中用于在用户退出登录后继续运行指定的命令或程序。它可以使进程忽略挂起(SIGHUP)信号,从而在关闭终端或断开连接后仍然保持运行。在使用 nohup 命令时,需要注意以下几点:
nohup command &
command:要运行的命令或程序。&:将命令放入后台运行。默认情况下,nohup 会将输出重定向到当前目录下的 nohup.out 文件。如果需要指定其他文件,可以使用:
nohup command > output.log 2>&1 &
>:将标准输出重定向到指定文件。2>&1:将标准错误输出重定向到标准输出。&:将命令放入后台运行。nohup 默认会忽略 SIGHUP 信号,确保进程在用户退出登录后继续运行。
使用 ps 命令可以查看 nohup 启动的进程:
ps -ef | grep nohup
或者使用 pgrep 命令:
pgrep -af nohup
如果需要终止 nohup 启动的进程,可以使用 kill 命令:
kill -9 <PID>
<PID>:进程的进程 ID。nohup 的场景nohup.out 或其他日志文件,避免磁盘空间被占满。假设你想在后台运行一个 Python 脚本,并且希望输出重定向到一个特定的日志文件:
nohup python my_script.py > my_script.log 2>&1 &
通过以上注意事项和示例,你可以更有效地使用 nohup 命令来管理后台进程。