パス変更時にシステムサービスを再起動するのに時間がかかる

パス変更時にシステムサービスを再起動するのに時間がかかる

私はsystemd型のUbuntuサービスを持っていますsimplefoo.servicePythonスクリプトがフォーマットで実行されますExecStart

その後、他の種類のサービスを実行サービスoneshotと呼びます。foo-restart.service/usr/bin/systemctl restart foo.service

最後に、PathChanged別のファイルの指示はfoo-restart.path私のPythonスクリプトを指しています。

アイデアは、ファイルを更新するとサービスが再起動されることです。この問題は発生しますが、時間がかかり、次のようにjournalctl -fu foo.service表示されます。

Oct 08 22:45:14 Vpn445 systemd[1]: Stopping Foo...
Oct 08 22:45:58 Vpn445 python3[2686278]: Yay
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: State 'stop-sigterm' timed out. Killing.
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: Killing process 2686278 (python3) with signal SIGKILL.
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: Killing process 2686305 (python3) with signal SIGKILL.
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: Killing process 2689506 (python3) with signal SIGKILL.
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: Main process exited, code=killed, status=9/KILL
Oct 08 22:46:44 Vpn445 systemd[1]: foo.service: Failed with result 'timeout'.
Oct 08 22:46:44 Vpn445 systemd[1]: Stopped Foo.
Oct 08 22:46:44 Vpn445 systemd[1]: Started Foo.

このプロセスをより速くするにはどうすればよいですか、サービスをより速く停止して再起動し、最後に十分に再ロードするにはどのコマンドをトリガーする必要がありますか?

また、fooタイプをに変更してサービスをoneshot実行した後に再起動しましたが、運がありませんでした。systemctl daemon-reload

10秒ごとにメッセージが記録されるため、問題がわかります。プロセスの開始を停止しますが、スクリプトは強制的に停止されるまで実行され続けます。

Oct 08 23:38:28 Vpn445 systemd[1]: Stopping Foo...
Oct 08 23:38:33 React python3[2692568]: After change
Oct 08 23:38:43 React python3[2692568]: After change

関連情報