web-dev-qa-db-ja.com

タイムアウト期間中に終了しない場合にプロセスを強制終了するstart-stop-daemonのコマンドを生成するにはどうすればよいですか?

Redisインスタンスに対してstart-stop-daemonを実行する必要があり、SIGTERMを送信して、redisインスタンスが終了しない場合は、強制的に終了させます。

start-stop-daemon構成では、--retryオプションを使用できると記載されていますが、これを行う方法がわかりませんでした。現在のコマンドは次のとおりです。

/sbin/start-stop-daemon --stop --retry forever/TERM --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server

これをどのように行うことができるかについてのヒントはありますか?

7

2つの方法があります。

1つ目は、数値--retry値を指定することです。次に、/signal/timeout/KILL/timeoutスケジュールを使用します。つまり終了信号(--signalオプションで指定)を送信し、指定された秒数だけ待機してから、プロセスで無視できなかったため強制終了するKILL信号を送信します。コマンドは次のようになります。

/sbin/start-stop-daemon --stop --signal TERM --retry 5 --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server

2番目は、完全なschedule--retry optionに指定することです。次のようになります。

/sbin/start-stop-daemon --stop --retry TERM/5/KILL/10 --quiet --oknodo --pidfile /var/run/redis/redis.pid --exec /usr/bin/redis-server
10