在 CentOS(以及大多数 Linux 系统)中,nohup 常用来在后台运行程序,并且忽略终端断开信号(SIGHUP),同时可以把输出记录到日志文件。
下面按常见用法给你说明。
nohup command > output.log 2>&1 &
说明:
nohup:进程不随终端退出而结束command:你要执行的命令或脚本> output.log:标准输出写入 output.log2>&1:错误输出也写入同一个日志&:后台运行示例:
nohup python app.py > app.log 2>&1 &
如果你不指定日志文件:
nohup command &
CentOS 默认会把输出写到当前目录的:
nohup.out
查看日志:
tail -f nohup.out
nohup command > stdout.log 2> stderr.log &
或:
nohup sh run.sh > run.out 2> run.err &
默认 > 会覆盖日志,如果想追加:
nohup command >> output.log 2>&1 &
nohup command >> app_$(date +%Y%m%d).log 2>&1 &
jobs
或:
ps -ef | grep command
结束进程:
kill -9 PID
如果你在 CentOS 上长期运行服务,推荐:
systemd(生产环境首选)screen / tmuxsupervisor示例(systemd):
/etc/systemd/system/myapp.service
如果你愿意,可以告诉我:
我可以给你更合适的日志方案。