私はuserpythonスクリプトを実行する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スクリプトを実行するサービスを用意し、起動時にスクリプトを再実行することです。スクリプトが終了またはクラッシュした場合、理想としては、これをユーザーサービスにしたいのです。これはルートとして実行されます。
ユニットファイルを作成または変更した後、systemdにリロードするように指示する必要があります。
systemctl --user daemon-reload
これが、@ norajの再起動によって修正された理由を説明しています。
同じ問題がありました。ログアウトとログインは機能しませんでしたが、答えは非常に簡単でした。再起動するだけです。