読者です 読者をやめる 読者になる 読者になる

百日半狂乱

Shut the fuck up and write some code!!

世にも恐ろしいSIGPIPE、ソケットプログラミングの落とし穴

前回、「次回もシグナルのことを書く」と書いたのでシグナルのことを書く*1. ソケットプログラミングの落とし穴は色々あるけど、ここでは個人的に嵌ったシグナル関連の落とし穴に関して書き殴る. 結論から書くと、コネクションが切れたソケットに書き込み(s…

POSIX.1「signal(2)は古い、sigaction(2)を使え。」

過去に何回かシグナルに関する話をしたが、今回と次回もシグナルの話にしようと思う. ちょうどLinuxのシグナルまとめがホッテントリに上がっていたので、シグナルを飛ばす側の話はこちらを参照するか、より詳細にはsignal(7)のmanページを参照する. ここで…

SIGSTOPで停止したプロセスにSIGTERMを送ってもプロセスが死なない?

二十五日半狂乱3日目の記事 もはや、Advent Calendarでもなんでもなくなっているけど、そんな悲しい現実はさておいて. 前回の話がstackoverflowですでに議論され尽くされていて、解答の一つに自分のスクリプト似た構造のシェルスクリプトがあった. #!/bin…

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェルスクリプト

二十五日半狂乱、2日目の記事. 実行中のプロセスをkillしたいが、対象のプロセスをkillすると子プロセスがゾンビ化しちゃうからプロセスツリーを丸ごとkillしたくなった. どうせならkillコマンドっぽくプロセスIDで指定して、指定したプロセスをrootとして…