開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の16章(プロセス管理)、16.9(練習問題)4を解いてみる。
その他参考書籍
4.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.012; binmode STDOUT, ':utf8'; binmode STDIN, ':utf8'; sub my_int_handler { print "INTシグナルを受け取ったのでプログラムを終了\n"; exit; } sub my_usr1_handler{ state $n = 1; print "usr1: ". $n . "回\n"; $n += 1; } sub my_hup_handler{ state $n = 1; print "hup: " . $n . "回\n"; $n += 1; } for my $signal (qw(int usr1 hup)){ $SIG{uc $signal} = "my_${signal}_handler"; } while(1){}
入出力結果(Terminal)
$ ./sample.pl usr1: 1回 hup: 1回 hup: 2回 usr1: 2回 INTシグナルを受け取ったのでプログラムを終了 $
Perlのワンライナーでシグナルを送信
入出力結果(Terminal)
$ perl -e 'kill USR1 => 65780' $ perl -e 'kill HUP => 65780' $ perl -e 'kill HUP => 65780' $ perl -e 'kill USR1 => 65780' $ perl -e 'kill INT => 65780' $
0 コメント:
コメントを投稿