可在Linux中通过nohup、disown、screen、systemd用户服务等方法实现程序后台持久运行:nohup忽略SIGHUP并配合&启动;disown脱离shell控制;screen创建可分离会话;systemd用户服务支持开机自启与自动重启。

如果您希望在Linux系统中启动一个程序并使其在终端关闭后仍持续运行,则需要借助后台运行机制。以下是实现此目标的多种方法:
一、使用nohup命令配合&符号
nohup命令可使程序忽略SIGHUP信号,避免因终端断开而被终止;配合&符号可将进程置于后台执行。该组合适用于大多数长期运行的任务。
1、在终端中输入命令:nohup your_command &
2、按下回车键执行,系统将返回类似“[1] 12345”的进程编号提示
3、程序的标准输出和错误输出默认写入当前目录下的nohup.out文件
4、关闭终端后,进程仍持续运行
二、重定向nohup输出到指定文件
为便于日志管理,可将nohup产生的输出重定向至自定义文件,避免nohup.out堆积或覆盖。
1、执行命令:nohup your_command > output.log 2>&1 &
2、其中“> output.log”重定向标准输出,“2>&1”将标准错误合并至标准输出
3、该命令确保所有输出均写入output.log,且不影响后台运行特性
三、使用disown命令脱离shell控制
当程序已用&启动但未使用nohup时,可通过disown将其从当前shell作业表中移除,使其不受终端退出影响。
1、先以&方式启动程序:python3 server.py &
2、输入jobs命令查看作业列表,确认其作业号(如[1])
3、执行disown %1(假设作业号为1)
标签: linux python centos app ubuntu 工具 session linux系统 会话管理 自动重启
还木有评论哦,快来抢沙发吧~