ホームページ  >  記事  >  運用・保守  >  Linuxにはどのような信号がありますか?

Linuxにはどのような信号がありますか?

青灯夜游
青灯夜游オリジナル
2023-03-30 14:15:083666ブラウズ

Linux シグナルには次のものが含まれます: 1. SIGHUP、プロセスを直ちにシャットダウンし、構成ファイルを再読み込みして再起動するために使用されます; 2. SIGINT、プログラム中止信号、フォアグラウンド プロセスを終了するために使用されます; 3 . SIGQUIT、プログラム終了信号; 4. SIGFPE、致命的な算術演算エラーが発生したときに発行されます; 5. SIGKILL、プログラムの実行を直ちに終了するために使用されます; 6. SIGALRM、クロック タイミング信号; 7. SIGTERM、終了する信号通常のプロセス、8. SIGCONT、9. SIGSTOP など。

Linuxにはどのような信号がありますか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux におけるシグナルとは

プロセスの管理とは、主にプロセスの終了と再起動を指します。通常、ソフトウェアを終了または再起動するときは、プロセスを直接操作するのではなく、そのプログラムを終了または再起動します。たとえば、Apache サービスを再起動するには、通常、「service httpd restart」コマンドを使用して Apache プログラムを再起動します。

では、プロセスを直接管理することで、Apache をシャットダウンまたは再起動できるのでしょうか?答えは「はい」です。その場合は、プロセスのシグナル (Signal) に依存する必要があります。プロセスに番号を付けて、プロセスに何をさせたいかを伝える必要があります。

信号は、Linux オペレーティング システムでは非常に重要です。信号は、キーボードから生成されることも、ソフトウェア条件によって生成されることも、ハードウェア例外を呼び出すことによって生成されることもあります。 Linux にはシステム関数呼び出しから生成されたシグナルが合計 64 種類あります。Linux ユーザーは次のように kill -l を使用してそれらを表示できます

1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

最初の 32 種類は信頼性の低いシグナルと呼ばれ、通常はソフトウェアの後で使用されますは、キューイングをサポートしません。信頼できる信号として知られる 32 種類の信号は、通常、キューイングをサポートするためにハードウェアで使用されます。

#Linux の一般的なシグナル

##シグナル コード12#3SIGQUITプログラム終了信号 (Ctrl \ と同じ)8SIGFPE致命的な算術エラーが発生したときに発行されます。浮動小数点演算エラーだけでなく、オーバーフローや 09SIGKILL による除算など、他のすべての算術演算エラーも含めます。すぐにプログラムを終了します。この信号をブロックしたり、処理したり、無視したりすることはできません。一般に、実際の時間またはクロック時間を計算するクロック タイミング信号のプロセスを強制的に終了するために使用されます。アラーム機能は、このシグナル 15SIGTERM プロセスを正常に終了するシグナル (kill コマンドのデフォルトのシグナル) を使用します。プロセスで問題が発生した場合、このシグナルではプロセスを正常に終了できません。その場合にのみ、SIGKILL シグナル (シグナル 918) を試行します。 SIGCONT このシグナルにより、中断されたプロセスが実行を再開できるようになります。このシグナルはブロックできませんSIGSTOP#

KILL、STOP 信号はブロックしたり、無視したり、キャプチャしたりすることはできません。

Term はプロセスを終了することを意味します。コアとは、プロセスを終了してコアをダンプすることを意味します。 Stop はスレッドを一時停止し、Cont は一時停止されたスレッドを再開します。

共通シグナルの一般的な用途

  • SIGHUP

    このシグナルは、ユーザー端末の接続 (正常または異常) が終了したときに発生します。通常、端末の制御プロセスが終了するときに発行され、同じセッション内の個々のジョブに、制御端末との関連付けがなくなったことを通知します。

    Linux にログインすると、システムはログイン ユーザーにターミナル セッション (Session) を割り当てます。フォアグラウンド プロセス グループとバックグラウンド プロセス グループを含む、このターミナルで実行されているすべてのプログラムは、通常、このセッションに属します。ユーザーが Linux からログアウトすると、フォアグラウンド プロセス グループと、端末に出力するバックグラウンド プロセスが SIGHUP シグナルを受信します。

    このシグナルのデフォルトの動作はプロセスを終了することであるため、ログアウト後、前後のプロセスとバックグラウンドでの端末出力を伴うプロセスが終了されます。

    しかし、この信号をキャプチャすることはできます。たとえば、wget は SIGHUP 信号をキャプチャして無視できるため、Linux からログアウトした場合でも、wget はダウンロードを続行できます。

    さらに、端末から切断されたデーモンの場合、このシグナルは構成ファイルを再読み取るように通知するために使用されます。

    たとえば、HUP シグナルを nginx プロセスに送信すると、構成を更新できます。

  • SIGINT: プログラム終了 (割り込み) 信号。ユーザーが INTR 文字 (通常は Ctrl-C) を入力したときに発行され、フォアグラウンド プロセス グループにプロセスを終了するよう通知するために使用されます。

  • SIGQUIT: SIGINT に似ていますが、QUIT 文字 (通常は Ctrl-\) によって制御されます。プロセスは、SIGQUIT を受信して​​終了するときにコア ファイルを生成します。この意味では次と似ています。プログラムエラーを知らせます。

  • SIGTERM:

    プログラム終了 (終了) シグナル SIGKILL とは異なり、このシグナルはブロックして処理できます。これは通常、プログラムが自動的に正常に終了することを要求するために使用され、プロセスが終了する前に必要なクリーンアップ作業を実行できるようにします。

    シェル コマンド kill は、デフォルトでこのシグナルを生成します。プロセスを終了できない場合は、SIGKILL を試します。

  • SIGTERM を使用すると、プロセスを正常に終了できます。プロセス自体が適切でない場合は、SIGKILL を使用して正常に終了できるようにします。

  • SIGCONT: 停止したプロセスの実行を継続させます。このシグナルはブロックできません。ハンドラーを使用すると、プログラムが停止状態から継続に変わったときに特定のタスクを完了できるようにすることができます。実行。作業します。たとえば、プロンプトを再表示します...

  • SIGSTOP: プロセスの実行を停止します。終了および中断との違いに注意してください。プロセスは終了していません。しかし、実行は一時停止されました。このシグナルはブロック、処理、または無視できません。

共通シグナル ショートカット キー

  • ctrl-c は、フォアグラウンド プロセス グループ内のすべてのプロセスに SIGINT シグナルを送信します。実行中のプログラムを終了するためによく使用されます。

  • ctrl-z は、フォアグラウンド プロセス グループ内のすべてのプロセスに SIGTSTP シグナルを送信します。これは、プロセスを一時停止するためによく使用されます。

  • ctrl-d はシグナルを送信しませんが、EOF を示す特別なバイナリ値を表します。

  • ctrl-\ フォアグラウンド プロセス グループ内のすべてのプロセスに SIGQUIT シグナルを送信し、フォアグラウンド プロセスを終了してコア ファイルを生成します。

シグナル名 説明
SIGHUP このシグナルにより、プロセスがただちにシャットダウンされます。その後、構成ファイルを再度読み取り、再起動します
SIGINT プログラム終了信号。フォアグラウンド プロセスを終了するために使用されます。 Ctrl C ショートカット キーの出力と同等
#19
このシグナルはフォアグラウンド プロセスを一時停止できます。これは Ctrl Z ショートカット キーを入力するのと同じです。この信号はブロックできません
キー関数## Ctrl- cCtrl-zCtrl-dCtrl-sCtrl-qCtrl -o #画面をクリアLinux ビデオ チュートリアル #
フォアグラウンド プロセスの強制終了
フォアグラウンド プロセスの一時停止
入力を終了するか、シェルを終了します
出力の一時停止
出力の再開
#出力を破棄 ##Ctrl-l
関連する推奨事項: 「#」

以上がLinuxにはどのような信号がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。