在 Debian(以及其他 Linux 发行版)中,nohup 常用于在后台运行程序,并在退出终端后继续保持运行。它默认会把输出写入日志文件,方便你查看运行情况。
下面从 基本用法、日志位置、查看日志、常见问题 几个方面说明。
nohup 命令 &
示例:
nohup python3 app.py &
说明:
nohup:忽略挂断信号(SIGHUP)&:后台运行nohup.out如果你没有指定输出文件,nohup 会把:
都写入当前目录下的:
nohup.out
查看日志:
tail -f nohup.out
nohup python3 app.py > app.log 2>&1 &
含义:
>:标准输出写入 app.log2>&1:错误输出也写入 app.log&:后台运行查看日志:
tail -f app.log
nohup python3 app.py | tee app.log &
tail -f app.log
退出:Ctrl + C
tail -n 100 app.log
grep "ERROR" app.log
> app.log
ps aux | grep app.py
jobs
kill PID
或强制结束:
kill -9 PID
解决:
logrotate可能原因:
& 后台运行screen 或 tmux示例:
screen
python3 app.py
# Ctrl + A + D 脱离
如果是服务程序,建议使用:
systemdsupervisor而不是长期依赖 nohup
如果你有具体场景(比如 Python / Java / Node / Shell 脚本),我可以给你更针对性的示例。