重新启动后系统服务将无法启动

时间:2020-07-10 10:27:38

标签: python ubuntu systemd

我每个人,

我的服务有问题。我想在启动时启动python脚本(完成此脚本大约需要20秒),我想每2分钟执行一次。因此,我创建了此服务:

[Unit]
Description=Set and check time and date of the board

[Service]
Type=simple
Restart=always
RestartSec=120
User=root
Group=root
ExecStart=/usr/bin/python /home/dev/Configuration-Folder/daemons/configureTimeScript.py

[Install]
WantedBy=multi-user.target

当我使用“ sudo python /home/dev/Configuration-Folder/daemons/configureTimeScript.py”启动脚本时,它运行得很好,但是当我重新启动Ubuntu(16.04)时,该服务将无法启动并向我显示它处于非活动状态(已死)...

您能给我一些解决此问题的提示吗?

谢谢

更新1 当我想使用“ sudo systemctl start setDateTime.service”手动启动服务时,该服务将按预期方式启动并保持在“活动(运行)”状态,这很好

更新2 我启用了该服务并重新启动Ubuntu,但未更改

1 个答案:

答案 0 :(得分:2)

我编写了一个示例systemd服务,该服务执行每10秒运行一次的Python脚本。

位于/opt/hello.py的Python脚本:

#!/bin/env python3

import os

os.system("echo 'Hello' > /home/telmo/Desktop/hello.txt")

请注意文件开头的shebang,我还使用chmod +x /opt/hello.py使脚本可执行。 完成这两个步骤后,我现在可以简单地从命令行调用脚本/opt/hello.py

然后我创建了服务单元文件(hello.service):

[Unit]
Description=My Python Script

[Service]
Type=simple
ExecStart=/opt/hello.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

并使用sudo mv hello.service /etc/systemd/system将其移动到正确的文件夹。

完成此操作后,我只需要启用该服务并首次启动它即可:

sudo systemctl enable hello
sudo systemctl start hello 

现在每10秒在用户的桌面中创建一个hello.txt。尝试删除它,它将再次生成。自从我们启用该服务以来,该行为将在系统重新启动后仍然存在。