尝试设置用户 systemd 服务:已加载:未找到(原因:没有此文件或目录)

尝试设置用户 systemd 服务:已加载:未找到(原因:没有此文件或目录)

我正在尝试制作一个用户运行 python 脚本的 systemd 服务 - 但是,当我尝试使用 启动服务systemctl --user start shadesmath,然后执行 时systemctl status shadesmath,我得到:

● shadesmath.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

以下是我的文件的内容shadesmath.service,该文件已具有~/.config/systemd/user/shadesmath.service权限744

[Unit]
Description=ShadesMath
AssertPathExists=/home/mikel/bots/mathbot/mathbot

[Service]
WorkingDirectory=/home/mikel/bots/mathbot/mathbot
ExecStart=/home/mikel/anaconda3/bin/python bot.py parameters.json
Restart=always

[Install]
WantedBy=default.target

我尝试运行systemctl --user enable shadesmath,它会在中创建指向该服务的符号链接~/.config/user/systemd/default.target.wants,但是当我尝试启动该服务时,这似乎并没有改变任何东西。

这是我第一次尝试使用 systemd,所以很有可能我做了一些愚蠢的事情,但我搞不清楚问题出在哪里。任何关于如何设置的指示都将不胜感激。我的目标是拥有一个运行此 python 脚本的服务,并在启动时/脚本完成或崩溃时重新运行它 - 理想情况下,我希望这是一个用户服务,因为我不希望它以 root 身份运行。

答案1

创建或更改单元文件后,您需要告诉 systemd 重新加载它:

systemctl --user daemon-reload

这解释了为什么重启可以为@noraj 修复该问题。

答案2

我也遇到了同样的问题;注销并重新登录不起作用,但答案很简单:只需重新启动。

相关内容