运行 Python CentOS 上的脚本作为后台任务

Run Python Script on CentOS as a Background Task

我为 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/.service 中,其中 是您选择的名称。

让程序在系统重启时启动:

sudo systemctl enable <my_service>.service

要手动启动程序:

sudo systemctl start <my_service>.service

这应该可以解决您的问题