如何让linux中python文件后台运行不中断,并守护进程 在 Linux 中,要让 Python 脚本在后台运行并确保它作为一个守护进程运行,你可以使用以下几种方法:
- 使用
nohup
命令:nohup
命令可以防止脚本在终端关闭时被中断。使用以下命令:
nohup python3 your_script.py &
&
将脚本放到后台执行。nohup
会将输出重定向到 nohup.out
文件。
执行命令后
- 使用
screen
或tmux
:screen
和tmux
是终端复用器,允许你启动一个会话,即使断开连接,会话中的进程也会继续运行。使用screen
:
screen -S session_name
python3 your_script.py
按 Ctrl-a
然后按 d
来分离会话,脚本将继续在后台运行。
- 使用
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
- 使用
supervisord
:supervisord
是一个进程管理工具,可以用来监控和控制你的 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
- 使用
disown
命令:如果你只是想要将脚本放到后台运行,并且不关心输出,可以在脚本运行后使用Ctrl-z
然后bg
将脚本放到后台,最后使用disown
命令:
python3 your_script.py
Ctrl-z
bg
disown
选择适合你需求的方法。如果你的脚本需要持续运行,并且你希望它在系统启动时自动启动,使用 systemd
或 supervisord
是更好的选择。如果你只是临时需要让脚本在后台运行,nohup
或 screen
/tmux
可能更合适。