コマンドは端末で実行されますが、サービスでは実行されません。

コマンドは端末で実行されますが、サービスでは実行されません。

これらの問題のほとんどは、パスエラーが原因で発生します。絶対パスをそこに入れたので、これは私の問題ではありません。サービスを開始すると、正常に開始されたにもかかわらず、常に「非アクティブ」と表示されます。

私の.serviceファイルは次のとおりです。

[Unit]
Description=hd-idle - spin down idle hard disks
Documentation=man:hd-idle(1)
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root
#EnvironmentFile=/etc/default/hd-idle
ExecStart=/usr/sbin/hd-idle -i 10
Restart=always

[Install]
WantedBy=multi-user.target

答え1

解決策を偶然別の場所で見つけました。StackExchangeの投稿

RemainAfterExitサービスカテゴリでラベルをyesに設定します。

RemainAfterExit=yes

私が理解しているように、その理由はコマンドが実行されますが、他のプログラムが変更したいシステムフラグを変更するためです。RemainAfterExitラベルを設定しないと、私のプログラムは何もせずに終了するので、私の場合は何もしません。

関連情報