首页 > 运维 > linux运维 > 正文

如何后台运行Linux程序 nohup防止终端退出中断

P粉602998670
发布: 2025-08-16 12:12:02
原创
446人浏览过

使用nohup命令配合&符号可让linux程序在后台运行且不受终端关闭影响,1. 执行nohup your_program & 将程序放入后台并忽略挂断信号;2. 输出默认保存至nohup.out,可通过>和2>&1重定向至自定义文件如my_log.txt;3. 使用ps aux | grep your_program查看后台进程及其pid;4. 通过kill pid结束进程,若无效可尝试kill -9 pid强制终止;5. 对于需重新连接会话的场景,可选用screen或tmux替代nohup,其中screen通过screen -s创建会话、ctrl+a再按d分离会话、screen -r重新连接,功能更强大但nohup适用于简单后台运行需求。

如何后台运行Linux程序 nohup防止终端退出中断

简单来说,想让Linux程序在后台运行,即使你关闭终端也能继续跑,

nohup
登录后复制
命令是你的好帮手。它能让程序忽略挂断信号,配合
&
登录后复制
符号就能把程序丢到后台默默执行。

解决方案

使用

nohup
登录后复制
命令,加上
&
登录后复制
符号,就能让你的程序在后台运行,并且不受终端关闭的影响。

nohup your_program &
登录后复制

这条命令做了两件事:

  1. nohup
    登录后复制
    :告诉系统忽略挂断信号(SIGHUP),这样关闭终端时程序就不会被中断。
  2. &
    登录后复制
    :将程序放到后台运行。

默认情况下,

nohup
登录后复制
会将程序的输出重定向到当前目录下的
nohup.out
登录后复制
文件。如果不想生成这个文件,或者想自定义输出位置,可以使用重定向操作符
>
登录后复制

nohup your_program > my_log.txt 2>&1 &
登录后复制

这里:

  • >
    登录后复制
    将标准输出重定向到
    my_log.txt
    登录后复制
    文件。
  • 2>&1
    登录后复制
    将标准错误也重定向到标准输出(也就是
    my_log.txt
    登录后复制
    )。

这样,所有输出都会记录到

my_log.txt
登录后复制
文件中,方便后续查看。

如何查看正在后台运行的程序?

想知道哪些程序在后台偷偷摸摸地运行,

ps
登录后复制
命令可以帮你。

ps aux | grep your_program
登录后复制

这条命令会列出所有正在运行的进程,然后用

grep
登录后复制
过滤出包含
your_program
登录后复制
的进程。你会看到类似这样的输出:

user       1234  0.0  0.1   12345   6789 ?        Sl   12:34   0:00 your_program
登录后复制

其中,

1234
登录后复制
就是进程 ID (PID)。

有了 PID,你就可以用

kill
登录后复制
命令来结束这个进程了。

一览运营宝
一览运营宝

一览“运营宝”是一款搭载AIGC的视频创作赋能及变现工具,由深耕视频行业18年的一览科技研发推出。

一览运营宝41
查看详情 一览运营宝

如何停止后台运行的程序?

如果你想结束一个后台运行的程序,

kill
登录后复制
命令是你的选择。

kill 1234
登录后复制

1234
登录后复制
替换成你要结束的程序的 PID。

有时候,程序可能比较顽固,

kill
登录后复制
命令可能无法立即结束它。这时候,可以尝试使用
kill -9
登录后复制
命令,强制结束进程。

kill -9 1234
登录后复制

但要注意,

kill -9
登录后复制
会直接杀死进程,不会给程序留下清理资源的时间,可能会导致数据丢失或其他问题。所以,尽量先尝试普通的
kill
登录后复制
命令。

nohup
登录后复制
的替代方案:
screen
登录后复制
tmux
登录后复制

虽然

nohup
登录后复制
很方便,但也有一些局限性。比如,它只能让程序在后台运行,无法重新连接到已经运行的程序。如果需要更强大的功能,可以考虑使用
screen
登录后复制
tmux
登录后复制

screen
登录后复制
tmux
登录后复制
都是终端复用器,可以让你在一个终端窗口中创建多个会话。每个会话都可以运行一个或多个程序,并且可以在不同的会话之间切换。即使关闭终端窗口,会话仍然会保持运行,下次可以重新连接到会话,继续查看和操作程序。

简单来说,它们就像是虚拟的终端窗口,可以让你在一个物理终端窗口中管理多个会话。

使用

screen
登录后复制
的例子:

  1. 创建新的会话:
    screen -S my_session
    登录后复制
  2. 在会话中运行程序:
    your_program
    登录后复制
  3. 分离会话:按下
    Ctrl+a
    登录后复制
    ,然后按下
    d
    登录后复制
  4. 重新连接会话:
    screen -r my_session
    登录后复制

tmux
登录后复制
的用法也类似,只是命令略有不同。

nohup
登录后复制
screen
登录后复制
tmux
登录后复制
各有优缺点,选择哪个取决于你的具体需求。如果只是想简单地让程序在后台运行,
nohup
登录后复制
就足够了。如果需要更强大的会话管理功能,
screen
登录后复制
tmux
登录后复制
可能是更好的选择。

以上就是如何后台运行Linux程序 nohup防止终端退出中断的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号