-allをkillallと一緒に使用するとどうなりますか?


15

killallターミナルからコマンドを実行しているときに、同僚がスクリプトを提案または編集して表示することがありkillall -HUPます。

この-HUP部分は何をしますか?


ここではkillallをのためのAppleのmanページです:developer.apple.com/library/mac/documentation/Darwin/Reference/... それはH =ヘルプ、U =ユーザー、そしてp =プロセスのように見えます。しかし、これらはすべて小文字です。マニュアルページに大文字のパラメータは表示されませんが、大文字の意味がまったく異なる場合があります-または存在しない場合があります。
David DelMonte

回答:


20

-HUPオプションは、によってプロセスに送られたのシグナルであるkillallコマンド。わかりにくいかもしれませんが、killallマニュアルの関連するエントリは次のとおりです。

-SIGNAL     Send a different signal instead of the default TERM.  The signal may be specified
            either as a name (with or without a leading SIG), or numerically.

送信するデフォルトのTERMシグナルとシグナルの違いは、シグナルをkillall送信HUPするプログラムに大きく依存します。プログラムの終了時に、異なる割り込み信号値を受け取ります。したがって、プログラムは割り込みをキャッチし、値に基づいて、割り込みを行うべきかどうかを決定できます。

TERM信号は(歴史的に「信号を終了」)は通常(のpoliterバージョンであり、その終了要求するプログラムに送信される強制とその終了をKILL信号)。プログラムはTERMシグナルを自由にキャッチして無視します。希望しない場合は終了する必要はなく、このシグナルを完全に無視できます。

HUP信号(歴史的に「ハングアップ信号」)は通常、それが再起動し、プロセス内のすべてのコンフィギュレーションを再読み込みすることを要求するプログラムに送られます。プログラムの実際の動作は、プログラム固有の実装に依存します。すべてのプログラムがキャッチさHUPれるわけではなく、コンベンションやドグマによって要求されるわけでもありません。たとえば、Apache WebサーバーはHUPシグナルをキャッチし、すべての構成ファイルを再読み取りしますが、プロセスを再起動しません。

プロセスを本当に終了し、それらがシグナルをキャッチして従うかどうかを心配しない場合は、シグナルを使用しKILLます。キャッチも無視もできず、プロセスが終了します。

利用可能なPOSIXシグナルの適切なレビューについては、このウィキペディアの記事を参照してください


2
関連項目セクションのkillallのmanページの下部には、シグナルとその機能をリストしたkill manpageへのリンクがあります。
イアンC.

私は#FAILスイッチを過ぎて読んだことがない人の一人です。ありがとうございました!
ダニエル・ジェームズW

「ハングアップ信号」として、HUPは通常、ユーザーがログアウトしたとき、またはプログラムを開始したシェルを終了したときにプログラムに送信されます。シグナルのキャッチがプログラムによって実装されていない場合、プログラムは通常終了します。上記のように、信号を受信するプログラムは、Apacheの例で示されているように、信号をキャッチした結果として任意の望ましいアクティビティを実装できます。
ナックバー

2

これ-HUPは、アプリの停止をトリガーし、その構成ファイルを読み取ってから再起動する「ハングアップ」信号です。使用せずに使用するよりも、必ずしも良いというわけではありません。

killall Finder

そして

killall -HUP Finder

敬意を表して同じです。OS XでFinderが再起動しますが、構成ファイルを再読み込みします。実行中のアプリケーションに-HUP機能が組み込まれていない場合、これは実際には当てはまらない可能性があります。前のポスターで述べたように、Apache。構成ファイルを読み取りますが、再度起動することはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.