使用 nohup 命令可让程序在终端关闭后继续运行,1. 基本用法为 nohup command &,如 nohup python3 myscript.py &;2. 输出默认保存到 nohup.out,可通过 > app.log 2>&1 重定向至自定义日志文件;3. 程序需无需交互输入,否则可能卡住;4. 可通过 ps aux | grep 查看进程,kill pid 终止进程;5. nohup 不保证永久运行,系统重启或崩溃仍会中断程序;6. 如需实时查看输出,推荐使用 screen 或 tmux 替代。该方法简单有效,适合非交互式后台任务部署。

在 Linux 或类 Unix 系统中,当你通过终端运行一个程序时,如果关闭终端或网络断开(比如 SSH 断开),程序通常会被终止。为了防止这种情况,可以使用
nohup
&
nohup
基本语法如下:
nohup command &
command
nohup
&
nohup python3 myscript.py &
执行后你会看到类似输出:
[1] 12345 nohup: ignoring input and appending output to 'nohup.out'
[1] 12345
nohup.out
默认情况下,
nohup
nohup.out
nohup python3 myscript.py > app.log 2>&1 &
解释:
> app.log
app.log
2>&1
app.log
&
这样日志会保存在
app.log
程序仍卡住?检查是否需要输入
nohup
如何查看和管理后台进程? 使用
ps
ps aux | grep myscript.py
使用
kill
kill 12345 # 替换为实际的 PID
关闭终端后进程仍在运行
这正是
nohup
ps
nohup 不等于永久运行
它只是防止终端断开导致的中断。系统重启、程序崩溃、资源不足等情况仍可能导致程序停止。
虽然
nohup
screen
tmux
nohup
例如使用
screen
screen -S mytask python3 myscript.py # 按 Ctrl+A, 再按 D 脱离会话
之后可以用
screen -r mytask
基本上就这些。
nohup
&
以上就是如何后台运行程序 nohup防止终端中断的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号