我每个人,
我的服务有问题。我想在启动时启动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,但未更改
答案 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
。尝试删除它,它将再次生成。自从我们启用该服务以来,该行为将在系统重新启动后仍然存在。