OSXでtimeoutコマンドを使う
Linuxにはtimeout
という、プログラムが一定時間処理が返って来なかったらシグナルを送るというコマンドがあって、これが地味に便利なのでOSXでも使いたいなと思ったわけです。
インストール
$ brew install coreutils
Homebrewでcoreutilsを入れるとこの手のコマンドが使えるみたいです。
coreutilsで入るコマンドはWikipedia(en)を参照。
また、プレフィックスにg
が付くようになっており、timeout
はgtimeout
という名前になるみたい。
All commands have been installed with the prefix 'g'.
オリジナルの名前を使いたい場合はPATHを設定すればいいらしいが、ls
やmv
などの基本コマンドが多く含まれているのでやらないほうが良さそう。
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
使い方
$ gtimeout [-s signal] seconds program [args]
-s
でシグナルを指定できます(デフォルトはTERM)- secondsにはタイムアウトまでの秒数
- programと[args]は実行させたいプログラムと引数ですね
そのまんまです。