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

mxb*_*xbi 4 services systemd 16.04

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

\n\n
\xe2\x97\x8f shadesmath.service\n   Loaded: not-found (Reason: No such file or directory)\n   Active: inactive (dead)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的文件的内容shadesmath.service,它已被放置在~/.config/systemd/user/shadesmath.service具有权限的情况下744

\n\n
[Unit]\nDescription=ShadesMath\nAssertPathExists=/home/mikel/bots/mathbot/mathbot\n\n[Service]\nWorkingDirectory=/home/mikel/bots/mathbot/mathbot\nExecStart=/home/mikel/anaconda3/bin/python bot.py parameters.json\nRestart=always\n\n[Install]\nWantedBy=default.target\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试运行systemctl --user enable shadesmath,它创建了到 中的服务的符号链接~/.config/user/systemd/default.target.wants,但是当我尝试启动服务时,这似乎没有改变任何内容。

\n\n

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

\n

Tho*_*mas 5

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

systemctl --user daemon-reload
Run Code Online (Sandbox Code Playgroud)

这解释了为什么重新启动可以修复@noraj。