次のことができるpkillのようなツールはありますか?
- 一致するすべてのプロセスにシグナルを送信する
- プロセスが終了するまでN秒間待ちます。
- すべてのプロセスが終了したら良いです。終了します。
- 一部のプロセスが終了していない場合は、SIGKILLを送信します。
プロセスが実際に終了するまでツールが待つことが重要です。
私が好きなスクリプト言語でこれを行うのはとても簡単ですが、この場合はすでに存在するツールを使用することをお勧めします。
これを行うには、SuSE-LinuxとUbuntuで実行する必要があります。
ベストアンサー1
必要な動作を提供する「標準」コマンドはありません。しかし、Debian とその派生物では、次のものを使用できます。start-stop-daemon
タスク--stop
と--retry
オプション:
start-stop-daemon --stop --oknodo --retry 15 -n daemontokill
SIGTERM
指定されたすべてのプロセスに送信され、停止するdaemontokill
まで最大15秒を待ってからSIGKILL
(最初の選択から)、残りのすべてのプロセスに送信され、完了するまでさらに15秒を待ちます。終了する項目がない場合、またはすべてのプロセスが停止すると、ステータス0で終了します。 2 番目のタイムアウト後も、一部のプロセスがまだ生きている場合は、状態 2 で終了します。
さまざまな方法でプロセスを一致させるオプションがたくさんあります。詳細については、ドキュメント(上記にリンクされています)を参照してください。さまざまなタイムアウトを使用してより詳細なスケジュールを提供することもできます。
start-stop-daemon
ソフトウェアパッケージの一部であるため、dpkg
Debianシステム(およびその派生システム)で常に使用できます。一部の非.deb
ディストリビューションもこのパッケージを提供しています。オープンシューター跳躍42そこに。他のプラットフォームで構築するのは非常に簡単です。
git clone https://salsa.debian.org/dpkg-team/dpkg.git
cd dpkg
autoreconf -fi && ./configure && make
あなたはautoconf
、、、、。automake
ビルドが完了したら、ディレクトリにあります。libtool
gettext
start-stop-daemon
utils