nohup 基础用法
将命令置于后台运行并忽略挂断信号(SIGHUP),标准输出默认重定向到 nohup.out:
nohup your_command &
通过 > 重定向输出到自定义日志文件:
nohup your_command > custom.log 2>&1 &
结合日志分析的实践场景
实时过滤日志:持续监控日志并提取关键字,输出到独立文件
nohup tail -f /var/log/app.log | grep "ERROR" > errors.log 2>&1 &
定时统计日志数据:使用 awk 定期分析日志并生成报告
nohup bash -c 'while true; do awk "/pattern/{count++} END{print count}" /path/to/log >> stats.log; sleep 300; done' &
进程管理关键命令
查看后台任务列表:
jobs -l
终止特定进程(需先获取 PID):
kill -9 <PID>
通过 ps 查找 nohup 启动的进程:
ps aux | grep "your_command"
增强稳定性的技巧
使用 disown 解除任务与终端的关联(需先通过 Ctrl+Z + bg 挂起到后台):
disown -h %1
结合 tmux 或 screen 实现更可靠的会话持久化:
tmux new -s session_name
nohup your_command > output.log &
tmux detach
日志轮转与维护
通过 logrotate 自动分割 nohup 输出文件,防止单个文件过大。示例配置:
/path/to/nohup.out {
daily
rotate 7
compress
missingok
notifempty
}
1424

被折叠的 条评论
为什么被折叠?



