在CentOS上运行Python脚本作为后台任务
我为我的 python 脚本租了一台 CentOS 7 服务器。我创建了一个 python 脚本,它连接我的电报帐户并将消息转发到目标。我用 Telethon 来做到这一点。当我通过 ssh 连接到服务器时,我可以运行脚本。当我注销时,我的脚本不起作用。
我使用了 nohup 和 & 但在重新启动或关闭之前仍然无法运行脚本。使用 nohup 注销后,我的脚本工作了一段时间但再次关闭。
我错过了哪些要点?
回答
后台进程与用户会话相关,一旦您断开连接,该会话就会结束并且此类进程将终止。要解决您的问题,您需要创建一个独立运行的服务。特别是你需要先创建一个服务配置文件:
[Unit]
Description=My Python program
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=centos
ExecStart=<command to start your program>
[Install]
WantedBy=multi-user.target
您用来执行程序的命令在哪里。
此文件需要保存在 /etc/systemd/system/<my_service>.service 中,其中 <my_service> 是您选择的名称。
要在系统重新启动时启动程序:
sudo systemctl enable <my_service>.service
要手动启动程序:
sudo systemctl start <my_service>.service
这应该可以解决您的问题