タグ

シグナルとperlに関するiwwのブックマーク (5)

  • 第6回 UNIXプログラミングの勘所(3) | gihyo.jp

    ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI

    第6回 UNIXプログラミングの勘所(3) | gihyo.jp
    iww
    iww 2014/04/08
    『localを用いて,このブロック限定のシグナルハンドラを設定』
  • perlipc - Perl のプロセス間通信 (シグナル, fifo, パイプ, 安全な副プロセス, ソケット, セマフォ) - perldoc.jp

    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

    iww
    iww 2014/03/29
    『礼儀正しいデーモンはルートディレクトリに chdir() (そのため実行ファイルの あったディレクトリを含むファイルシステムのアンマウントを邪魔することが ありません)』 なるほど! chdirするのはそういう理由なのか。
  • タイムアウト処理 - futomi's CGI Cafe

    処理に時間がかかりそうな処理を書く際、タイムアウト時間を設定して、それを超えても処理が完了しなければ、 エラーを表示するような処理が必要になることがあります。 特に、ソケットを使って外部サーバーと通信する場合などがあてはまります。 もし相手のサーバーからの応答が無かったらどうなるでしょうか。 応答があるまで待ち続けることになります。 または、ブラウザー側が見切りをつけて待機することをやめてしまうでしょう。 もしご利用のレンタルサーバーに CGI の処理時間に制限があれば、Internal Server Error となるでしょう。 ここでは、秒数を指定してタイムアウト時の処理ができるうようにする方法を解説します。 目次 タイムアウト処理の方法 タイムアウトの処理を実装する方法として、ALRM シグナルを使う方法を解説します。 シグナルとは、イベントが発生した際に、オペレーティングシステムが

  • Perl:%SIGによるシグナルの制御

    技術ドキュメント目次 -> Perl -> %SIGによるシグナルの制御 技術ドキュメントは、2002~2004年頃に作成したものが多いです。 内容が古くなっていることもあるかと思いますが、ご了承ください。 【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。 ◆ %SIGによるシグナルの制御 %SIGという特殊な連想配列の値を変更することで、 Perl のスクリプトの中からもシグナルの制御を行うことが可能になります。 次のような構文でシグナルを受け取った時に処理されるサブルーチンを指定することができます。

  • Perl/タイムアウト方法 - BugbearR's Wiki

    2017-04-16 FreeBSD/mpd 2016-12-23 RecentDeleted Blogアプリ 日記 2016-11-17 当にあった怖いコード/1 2016-05-16 .NET 2015-07-06 書きたいこと 2015-07-05 postgres Java/変数の初期化に安易に空オブジェクトを代入しない 2015-06-30 PukiWiki/1.4/マニュアル/プラグイン/u 当にあった怖いコード/15 2014-10-01 日記/2014-10-01 2014-09-09 日記/2014-09-09 2014-08-13 日記/2014-08-10 2014-05-28 バグパターン/日時 バグパターン 2014-04-13 IPv6 2014-03-20 パスワード問題 2014-01-27 DNS/ルートサーバーは13台という神話 2014-01-25

  • 1