nohup
(no hang-up)命令在 CentOS 系统中用于在后台运行程序,使其在用户退出登录后仍然继续运行。以下是一些使用 nohup
命令进行进程管理的技巧:
基本用法:
nohup command &
这会在后台运行 command
,并将输出重定向到当前目录下的 nohup.out
文件。
指定输出文件: 如果你想将输出重定向到特定的文件,可以这样做:
nohup command > output.log 2>&1 &
这会将标准输出和标准错误都重定向到 output.log
文件。
查看进程:
使用 ps
命令可以查看 nohup
启动的进程:
ps aux | grep command
或者使用 pgrep
命令:
pgrep -af command
终止进程:
找到进程 ID(PID)后,可以使用 kill
命令终止进程:
kill PID
如果进程不响应 kill
命令,可以尝试使用 kill -9
强制终止:
kill -9 PID
后台运行多个进程:
你可以同时运行多个 nohup
命令来管理多个后台进程。例如:
nohup command1 > output1.log 2>&1 &
nohup command2 > output2.log 2>&1 &
使用 nohup
和 &
的组合:
这种组合是最常用的,因为它简单且有效。确保在命令末尾加上 &
符号,以便将进程放入后台运行。
避免僵尸进程:
使用 nohup
时,确保正确处理子进程的退出状态,以避免僵尸进程的产生。可以使用 wait
命令等待子进程结束:
nohup command &
wait $!
日志轮转:
如果 nohup.out
文件变得非常大,可以使用 logrotate
工具来管理日志文件的大小和轮转。配置 /etc/logrotate.d/
目录下的相应文件即可。
通过这些技巧,你可以更有效地使用 nohup
命令在 CentOS 系统中进行进程管理。