Environment o Red Hat Enterprise Linux 4 o Red Hat Enterprise Linux 5 o Red Hat Enterprise Linux 6 o Red Hat Enterprise Linux 7 o Red Hat Enterprise Linux 8 o Red Hat Enterprise Linux 9 Issue We are investigating an issue with processes that are suddenly dying, and we have determined that the process receives a SIGKILL signal. However, there is no log message explaining more about the reason for t
Section: Linux Programmer's Manual (2) Updated: 2017-09-15 Index JM Home Page roff page 名前 nanosleep - 高精度なスリープ 書式 #include <time.h> int nanosleep(const struct timespec *req, struct timespec *rem); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): nanosleep(): _POSIX_C_SOURCE >= 199309L 説明 nanosleep() は、少なくとも *req で指定された時間の間、プログラムの実行を遅延させる。 nanosleep() は、呼び出したスレッドの実行を、 少なくとも *req で指定された時間の間、もしくは呼び出
ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI
perlipc - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores) The basic IPC facilities of Perl are built out of the good old Unix signals, named pipes, pipe opens, the Berkeley socket routines, and SysV IPC calls. Each is used in slightly different situations. Perl uses a simple signal handling model: the %SIG hash contains names or references of use
ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第3回は、設定時間をファイルディスクリプタ経由で通知する「timerfd」を紹介します。 はじめに 前回は、イベント用ファイルディスクリプタ「eventfd」の使用法や特徴を説明しました。今回は、時間を通知するファイルディスクリプタ「timefd」について解説していきたいと思います。 連載概要 この連載は、次のような内容について述べていく予定です。 連載目次 第1回:ディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴 第3回:タイマー用ディスクリプタ「timerfd」の特徴 第4回:シグナル用デ
同じシグナルがほぼ同時に複数配送される場合 シグナルハンドラを設定してwaitを呼び出すだけでは、ゾンビ防止には不十分。Unixのシグナルはキューイングされないために、シグナルが発生した数だけ、シグナルハンドラが実行されない場合があるから。 正しい解決方法は、waitの代わりにwaitpidを呼び出すこと。 //waitpidを呼び出すシグナルハンドラ void sig_child(int signo) { pid_t pid; int stat; while ( (pid = waitpid(-1, &stat, WNOHANG)) > 0) printf("child %d terminated\n", pid); return; } ネットワークプログラミングで遭遇する3種類の状況1.子プロセスをforkするプログラムでは、SIGCHLDシグナルを捕捉しなければならない。 2.シグナ
ここでは、selectに登録しているファイルディスクリプタに対して入出力を行わず、かつ、timeoutを設定せずにselectを横から止める方法を説明したいと思います。 selectを横から止めたい時とは? selectはブロッキングAPIです。 selectを利用すると、selectに登録したファイルディスクリプタが入力/出力可能になるか、タイムアウトが来るまでブロックし続けてしまいます。 例えばマルチスレッドプログラミングなどを行っているときに、片方のスレッドでselectを使ってずっと入力を待っていたとします。 もう片方のthreadで何らかの理由により、selectのループをbreakしたくなったときにselectを解除したくなる場合があるとします。 このようなときには、selectが行われているPIDに対してシグナルを送信するとselectはEINTRで抜けてきます。 説明だけで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く