Systemctlサービスがsudoファイルを表示できない

Systemctlサービスがsudoファイルを表示できない

私の質問 - sudoを使用するにはsystemctlサービスが必要ですが、理由がわかりません。 sudoファイルは表示されません。私が何を間違っているのでしょうか?

Description=Just_Work_Pls
After=network.target

[Service]
EnvironmentFile=/etc/environment
ExecStart=/home/Butter_Manager/sudo /home/Butter_Manager/env/bin/python3.8 manager.py
ExecReload=/home/Butter_Manager/sudo /home/Butter_Manager/env/bin/python3.8 manager.py
WorkingDirectory=/home/Butter_Manager/
KillMode=process
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

状態では、以下が表示されます。

  Loaded: loaded (/lib/systemd/system/Butter_Manager.service; enabled; vendor preset: enabled)
  Active: activating (auto-restart) (Result: exit-code) since Sat 2021-08-28 18:30:51 UTC; 149ms ago
 Process: 6518 ExecStart=/home/Butter_Manager/sudo /home/Butter_Manager/env/bin/python3.8 manager.py (code=exited, status=203/EXEC)
Main PID: 6518 (code=exited, status=203/EXEC)

Aug 28 18:30:51 Butter-Manager systemd[1]: Stopped Just_Work_Pls.
Aug 28 18:30:51 Butter-Manager systemd[1]: Started Just_Work_Pls.
Aug 28 18:30:51 Butter-Manager systemd[1]: Butter_Manager.service: Main process exited, code=exited, status=203/EXEC
Aug 28 18:30:51 Butter-Manager systemd[1]: Butter_Manager.service: Failed with result 'exit-code'.

ログには以下が表示されます。

Aug 28 18:31:22 Butter-Manager systemd[6623]: Butter_Manager.service: Failed at step EXEC spawning /home/Butter_Manager/sudo: No such file or directory
Aug 28 18:31:22 Butter-Manager systemd[1]: Butter_Manager.service: Main process exited, code=exited, status=203/EXEC
Aug 28 18:31:22 Butter-Manager systemd[1]: Butter_Manager.service: Failed with result 'exit-code'.
Aug 28 18:31:28 Butter-Manager systemd[1]: Butter_Manager.service: Service hold-off time over, scheduling restart.
Aug 28 18:31:28 Butter-Manager systemd[1]: Butter_Manager.service: Scheduled restart job, restart counter is at 575.
Aug 28 18:31:28 Butter-Manager systemd[1]: Stopped Just_Work_Pls.
Aug 28 18:31:28 Butter-Manager systemd[1]: Started Just_Work_Pls.
Aug 28 18:31:28 Butter-Manager systemd[6644]: Butter_Manager.service: Failed to execute command: No such file or directory
Aug 28 18:31:28 Butter-Manager systemd[6644]: Butter_Manager.service: Failed at step EXEC spawning /home/Butter_Manager/sudo: No such file or directory
Aug 28 18:31:28 Butter-Manager systemd[1]: Butter_Manager.service: Main process exited, code=exited, status=203/EXEC
Aug 28 18:31:28 Butter-Manager systemd[1]: Butter_Manager.service: Failed with result 'exit-code'.
Aug 28 18:31:33 Butter-Manager systemd[1]: Butter_Manager.service: Service hold-off time over, scheduling restart.
Aug 28 18:31:33 Butter-Manager systemd[1]: Butter_Manager.service: Scheduled restart job, restart counter is at 576.
Aug 28 18:31:33 Butter-Manager systemd[1]: Stopped Just_Work_Pls.
Aug 28 18:31:33 Butter-Manager systemd[1]: Started Just_Work_Pls.
Aug 28 18:31:33 Butter-Manager systemd[6657]: Butter_Manager.service: Failed to execute command: No such file or directory
Aug 28 18:31:33 Butter-Manager systemd[6657]: Butter_Manager.service: Failed at step EXEC spawning /home/Butter_Manager/sudo: No such file or directory
Aug 28 18:31:33 Butter-Manager systemd[1]: Butter_Manager.service: Main process exited, code=exited, status=203/EXEC
Aug 28 18:31:33 Butter-Manager systemd[1]: Butter_Manager.service: Failed with result 'exit-code'.
Aug 28 18:31:33 Butter-Manager systemd[1]: Stopped Just_Work_Pls.

2日が経っても何の進展もなく、どうすればいいのかわかりません。

答え1

この場合、サービスはシステム全体のサービス(/lib/systemd/systemにあります)なので、実際にはsudoがまったく必要ないため、デフォルトではrootとして実行されます。/home/Butter_Manager/sudoサービスファイルからその部分を削除するだけです。

サービスが失敗した理由は次のとおりです。

/home/Butter_Manager/sudo: No such file or directory

この意味は/home/Butter_Manager/sudo存在しません。おそらく.sudoを実行してそのパスを見つけることができます。実行すると、現在の作業ディレクトリ+ sudoが返されます(参考文献を参照)。私/usr/bin/sudo/bin/sudowhich sudorealpath sudoman realpath考えるコマンドの2番目の部分にもこの問題があります。私考えるあなたが意味するものは/bin/env /bin/python3.8そうではありません/home/Butter_Manager/env/bin/python3.8

関連情報