私の質問 - 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/sudo
which sudo
realpath sudo
man realpath
考えるコマンドの2番目の部分にもこの問題があります。私考えるあなたが意味するものは/bin/env /bin/python3.8
そうではありません/home/Butter_Manager/env/bin/python3.8
。