如何让linux中python文件后台运行不中断,并守护进程 在 Linux 中,要让 Python 脚本在后台运行并确保它作为一个守护进程运行,你可以使用以下几种方法:

  1. 使用 nohup 命令nohup 命令可以防止脚本在终端关闭时被中断。使用以下命令:
nohup python3 your_script.py &

& 将脚本放到后台执行。nohup 会将输出重定向到 nohup.out 文件。

如何让linux中python文件后台运行不中断,并守护进程_python

执行命令后

如何让linux中python文件后台运行不中断,并守护进程_python_02

  1. 使用 screentmuxscreentmux 是终端复用器,允许你启动一个会话,即使断开连接,会话中的进程也会继续运行。使用 screen
screen -S session_name
python3 your_script.py

Ctrl-a 然后按 d 来分离会话,脚本将继续在后台运行。

  1. 使用 systemd 服务systemd 是大多数现代 Linux 发行版的初始化系统,可以用来管理服务。创建一个服务文件来运行你的 Python 脚本:
  • 创建一个新的服务文件,例如 /etc/systemd/system/your_script.service
[Unit]
Description=My Python Script Service
After=network.target

[Service]
Type=simple
User=your_user
ExecStart=/usr/bin/python3 /path/to/your_script.py
Restart=always

[Install]
WantedBy=multi-user.target
  • 启动并启用服务:
sudo systemctl start your_script.service
sudo systemctl enable your_script.service
  1. 使用 supervisordsupervisord 是一个进程管理工具,可以用来监控和控制你的 Python 脚本。首先安装 supervisord
sudo pip3 install supervisor

然后配置 supervisord 来运行你的脚本。创建一个配置文件,例如 /etc/supervisor/conf.d/your_script.conf

[program:your_script]
command=python3 /path/to/your_script.py
autostart=true
autorestart=true
stderr_logfile=/var/log/your_script.err.log
stdout_logfile=/var/log/your_script.out.log

然后重新加载 supervisord 配置并启动你的程序:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start your_script
  1. 使用 disown 命令:如果你只是想要将脚本放到后台运行,并且不关心输出,可以在脚本运行后使用 Ctrl-z 然后 bg 将脚本放到后台,最后使用 disown 命令:
python3 your_script.py
Ctrl-z
bg
disown

选择适合你需求的方法。如果你的脚本需要持续运行,并且你希望它在系统启动时自动启动,使用 systemdsupervisord 是更好的选择。如果你只是临时需要让脚本在后台运行,nohupscreen/tmux 可能更合适。