【问题标题】:Systemd service won't start after reboot [closed]重启后系统服务不会启动[关闭]
【发布时间】:2020-07-10 10:27:38
【问题描述】:

各位,

我的服务有问题。我想在启动时启动一个 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,但没有任何改变

【问题讨论】:

  • 当您创建服务文件后,您是否启用了它,以便将其设置为开机启动?所以systemctrl enable your-service-name-here如果不是,可能只是你是否也尝试过启动服务以确保它能够作为守护进程运行?
  • 是的,我启用了它,我也尝试启动它,通过手动启动它,它可以工作

标签: python ubuntu systemd


【解决方案1】:

我编写了一个示例 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。尝试删除它,它将再次生成。自从我们启用该服务后,该行为将在系统重新启动后持续存在。

【讨论】:

  • 我复制/粘贴您的服务并更改了 ExecStart 路径(当然),但在重新加载守护进程并重新启动后它仍然保持“非活动(死)”
  • 我假设您也启用了该服务 (sudo systemctl enable SERVICE_NAME)。它适用于我的 Python 脚本吗?如果确实如此,则您的脚本中可能有某些内容阻止它正常工作。
  • 这真的很奇怪,因为当我复制你的 python 时,将它粘贴到 /opt/ 中,脚本由于失败而停止......“/opt/hello.py:没有这样的文件或目录”如果我验证了脚本是否在正确的位置并且我找到了它,那么我 100% 确定该文件存在
  • UPDATE:重启后,即使路径不好(根据journalctl),服务也启动...
  • 您确认可以使用/opt/hello.py从命令行运行脚本吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2023-03-17
  • 1970-01-01
  • 2016-11-14
相关资源
最近更新 更多