システム的で不要なプロセスが再開されます。

システム的で不要なプロセスが再開されます。

Go言語で書かれたシンプルなサービスがあります。一部のビジネスロジックを使用してWebサーバーを起動します。これでサービスを再ロードする必要があります。これは kill -HUP シグナルです。このシグナルにより、初期プロセスは新しいプロセスで接続を分岐してサービスします。すべてが大丈夫ですが、私たちはsystemdを使ってこのサービスを管理しようとしています。 systemdはこれが失敗だと思って(初期プロセスが終了しました)、再ロードした後にプロセスが再開されるようです。

Aug 11 06:19:12 developmetn systemd[1]: my-proxy.service: Failed with result 'timeout'.
Aug 11 06:19:12 developmetn systemd[1]: Failed to start my-proxy image proxy
Aug 11 06:19:15 developmetn systemd[1]: my-proxy.service: Scheduled restart job, restart counter is at 508.
Aug 11 06:19:15 developmetn systemd[1]: Stopped my-proxy image proxy.
Aug 11 06:19:15 developmetn systemd[1]: Starting my-proxy image proxy...

明らかに、これはリロード中に接続を100%提供するというアイデアを排除します。この状況を避ける方法は?我々は努力したタイプ=フォークオプションがありますが、systemctl reload my-proxy.serviceコマンドの実行に時間がかかります。

[Unit]
Description=image proxy
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/my-proxy &
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
WorkingDirectory=/etc/my-proxy/
LimitNOFILE=infinity
RestartSec=3

[Install]
WantedBy=multi-user.target

ベストアンサー1

おすすめ記事