擬似分散システム戻りコードの端を実行

分散型開発プロセスを作り、必然的な出会いのプログラムが異常終了し、一般的には、分散フレームワークの終わりは戻りコードを戻しますが、時間によってリターンコードは、おおよそ理由はプログラム例外ためであるかを知ることができます終了します。

分散システムに典型的にはLinux上で実行するため、いくつかの分散設計フレームワークの戻りコードは、Linux信号自体に関連付けられているであろう。

しかし、公式の前提の意味を知らなくても言うことを除いて、戻りコードの分散フレームワークは、一般的に、独自の意義を持っている、とLinuxの信号を比較することで、あなたはおおよそもちろん、前提は、より多くのフレームワークをどのように分配されるか、知ることができますlinuxのデザインの仕事も考慮に信号を取らなかった場合は、戻りコードはLinuxの信号に関連している、あなたは協会に行くことができません。

私たちは、リターンコードの分散フレームワークとLinux信号が関連付けられていることを前提としています。

戻りコードおよびLinuxに関連した分配信号フレーム1

相関式:例えば、リターン・コードのような134 128 +信号=終了コード、それは予期しない例外がプロセスで得発生し、適切な信号6、すなわちSIGABRT考えられる別の実施例137、工程が以内に終了されることを意味する、とすることができます私たちは、137がメモリオーバーランが殺されたかもしれないので、同じである、殺す-9 PIDをプロセスを殺すためにある私たちは皆知っている、リターンコードが9で検討し、また、具体的な分析する必要があり、おそらくあなたの感じを与えることができます。

信号2.linux

図は、男性7信号は、信号の特定の意味を表示するために使用することができ、一般的な64の信号を示しています。伝統的なUNIX信号に対するサポートの信号として、1から31まで番号が付けられ、信号が(非リアルタイム)信頼できない、信号の63〜32の番号を付け、後で信頼できる信号(リアルタイム信号)として知られ、拡張されます。信頼性が高く、信頼性の低い信号信号の違いは、前者は、キューをサポートしていない信号の損失を引き起こす可能性がありますが、後者ではないということです。

これらの信号のために、3つの処理Linuxの道、無視され、キャプチャおよびデフォルトのアクションは、一般的にあります。

  • 信号を無視し、信号のほとんどに対処するためにこれを使用することができるが、2つの信号が存在する(それぞれ、無視できないSIGKILLSIGSTOP)。彼らはプロセスを終了し、カーネルとスーパーユーザを停止するために信頼性の高い方法を提供するので無視した場合、プロセスは誰がプロセスを管理することはできませんになり、明らかにカーネルの設計者は、シーンを見たいと思っていません。
  • キャプチャ信号、あなたがカーネルに指示する必要があり、ユーザは信号の特定の種類でやりたい、それがシグナルハンドラを記述することを意味し、この関数は、カーネルを教えてくれます。この信号がカーネルによって生成されたときに所定の信号処理を実現するために、ユーザ定義関数を呼び出します。
  • 信号が発生した場合の各信号のデフォルトアクションは、システムは、システム自動的に、処理動作のデフォルトを有していなければなりません。しかし、システムのために、治療のほとんどは、それが直接のプロセスを殺すために、より残忍です。
一般的なLinux信号の3解釈

1)SIGHUP 
この信号は、それらがもはや関連する制御端子である正常または異常の終了時に放出されたユーザ端末()、典型的にはプロセス制御端子の端部に、同じジョブ内のセッションの各々に通知し、この時に接続されています。

Linuxをログインすると、システムは、ログイン端末(セッション)にユーザーを割り当てます。最終的には一般的に、バックグラウンドとフォアグラウンドプロセスグループのプロセスグループを含め、実行中のすべてのプログラムがこのセッションに属します。ユーザーは、Linuxのログインを終了すると、フォアグラウンドとバックグラウンドプロセスグループは、出力端子を処理する必要がSIGHUP信号を受信します。この信号のデフォルトのアクションは、プロセスを終了することであり、したがって、背景と前景のプロセスグループプロセス出力端子が中断されています。しかし、それは、そのようなSIGHUP信号を捕捉し、それを無視し、そうであっても、Linuxのログインのうち、wgetのダウンロードを続けることができwgetのように、信号を取り込むことができます。

また、デーモンの関係から、端末は、この信号は、その設定ファイルを再読み込みするためにそれを通知するために使用されます。

2)SIGINT 
ときにユーザがタイプINTR文字(通常はCtrl-C)プログラムの終了(割り込み)信号が送信され、処理を終了するフォアグラウンドプロセスグループを通知するために使用されます。

3)SIGQUIT 
と同様のSIGINTが、制御するQUIT文字(通常はCtrl- \)。工程においてによるこの意味でプログラムエラー信号と同様コアファイルSIGQUIT出口を、製造を受信します。

4)SIGILLは、 
実行可能ファイル自体は、データセグメントを実行しようと、またはので、不当命令エラーが通常発生行う。スタックオーバーフローこの信号を生成することも可能です。

5)SIGTRAP 
デバッガによって使用されるブレークポイント命令トラップまたは他の命令によって生成されました。

6)SIGABRTの 
通話機能信号がアボート発生しました。

7)SIGBUS 
不正アドレス、位置合わせ(アライメント)誤りを含むメモリアドレス。そのような限り整数ワードへのアクセスが、アドレスが4の倍数ではありません。これは、SIGSEGVは異なる後者が原因(例えば、アクセスが自身の記憶空間又は読み出し専用メモリではないとして)正当トリガーのメモリアドレスへの不正なアクセスであることです。

8)SIGFPE 
致命的な算術演算エラー時に発行されただけでなく、発生した浮動小数点エラーがゼロ、他のすべての算術演算およびその他のエラーによってオーバーフロー及び除算を含ん含みます。

9)SIGKILL 
すぐに終了プログラムを実行するために使用される。この信号は遮断することができず、処理は無視されます。管理者は、終了するプロセスを見つけることができない場合は、この信号を送信しようとすることができます。

10)SIGUSR1を 
使用するユーザに委ね

11)SIGSEGVが 
割り当てられていない独自のメモリにアクセスしようとする、またはデータを書き込むためのメモリアドレスへの書き込みアクセス権を持っていないようにしよう。 

 信号11、すなわち、それは特定の条件下で不正なメモリアクセスプログラムの存在を示すことができます。

12)SIGUSR2を 
使用するユーザに委ね

13)SIGPIPEの 
パイプ破裂。この信号は、典型的には、通信するために2つのプロセスFIFO(パイプ)を使用するなど、プロセス間通信で生成され、パイプラインはSIGPIPE信号を受信するプロセスを記述し、予期せずにオープンまたは終了パイプ書き込みに出て行かなかった読み出します。また、二つのプロセスでソケット通信、ソケットを書き込み書き込み処理は、読み取り処理が終了しました。

14)SIGALRMの 
クロックは、タイミング信号を信号を使用して、実際の時間またはクロック時刻アラーム機能を計算します。

15)SIGTERMの 
信号を遮断して処理することができることを除いて、プログラムの終了(終了)信号、およびSIGKILL。多くの場合、この信号を生成し、通常のシェルコマンドkillのデフォルトのアプリケーションが終了を依頼するために使用。プロセスが終了しない場合、我々はSIGKILLをしようとします。

17)SIGCHLD 
子の終わりには、親が信号を受信します。

親は、この信号を処理しない場合、そこに子プロセスが終了することが、何の待ち時間(待機)子供は、ありませんが、また、カーネルのプロセステーブルのエントリを所持し、子プロセスはゾンビプロセスと呼ばれています。このケースでは、(親プロセスをかSIGCHILD信号を無視する、またはそれを捕獲する、またはそれが終了した子、または親プロセスを導出待って、その後、子プロセスはinitプロセスによって引き継がれ、自動的に終了すること)は避けるべきです。

18)SIGCONTは 
停止させる(停止)プロセスは継続する。この信号はブロックできない。継続する状態で停止したときにプログラムが特定のタスクを達成できるようにハンドラを使用することができます。たとえば、プロンプトが再び表示されます

19)SIGSTOPは 
(実行を停止)のプロセスを停止し、それとの違いに注意を払うと、割り込みを終了:プロセスはちょうど、ブロックされて処理されるか、無視することはできません。この信号の実装を中断し、終わっていません。

20)SIGTSTP 
プロセスの実行を停止するが、信号は処理され、無視することができる。この信号は送信されたときにユーザーがSUSP文字(通常はCtrl-Z)

21)SIGTTIN 
ユーザ端末からのバックグラウンドジョブがデータを読み出す際に、ジョブ内のすべてのプロセスがSIGTTIN信号を受信する。プロセスは、デフォルトで実行を停止します。

22)SIGTTOU 
類似SIGTTINが、書き込み端末(端末モードまたは修飾)で受信。

23)SIGURG 
「緊急」データまたはアウトオブバンドソケットに到達したときにデータが生成されます。

24)SIGXCPUが 
CPU時間制限を超えています。この制限ははgetrlimit /はsetrlimitによって変更/読み出すことができます。

25)SIGXFSZ 
プロセスは、ファイルサイズがリソース制限を超えているようにファイルを展開しようとしたとき。

26)SIGVTALRM 
仮想クロックは、SIGALRMと同様の信号が、プロセスがCPU時間を算出します。

27)SIGPROF 
類似SIGALRM / SIGVTALRMが、CPU時間と時間システムコールを含むプロセス。

28)SIGWINCHは、 
ウィンドウサイズが変更されたときに作られました。

29)SIGIOの 
ファイルディスクリプタは、入力/出力操作のために開始する準備ができています。

30)SIGPWRの 
停電

31)SIGSYS 
違法なシステムコールを。

 
次の記事を参照してください。
https://blog.csdn.net/dxpqxb/article/details/78251489
https://www.jianshu.com/p/f445bfeea40a

おすすめ

転載: www.cnblogs.com/029zz010buct/p/11462832.html