サブプロセスを開始するRubyスクリプトがあります。プロセス全体が殺されたときに彼らを殺してほしい。
IO.popen('testacular start unit.conf.js', 'w')
スクリプトを実行します。
user.name:/my/repo [git: my-branch] $ ruby my-script.rb
精巣からの出力:
user.name:/my/repo [git: my-branch] $ info: Testacular server started at http://localhost:8000/
info (launcher): Starting browser PhantomJS
info (PhantomJS 1.7): Connected on socket id uVAO41Q2niyLA8AqbZ8w
PhantomJS 1.7: Executed 44 of 44 SUCCESS (0.213 secs / 0.115 secs)
Control-Cを押して、プロセスを強制終了します。実行中のプロセスを確認します。
user.name:/my/repo [git: my-branch] $ ps
PID TTY TIME CMD
# ...
39639 ttys019 0:01.28 node /usr/local/bin/testacular start unit.conf.js
39649 ttys019 0:00.09 node /usr/local/bin/phantomjs /var/folders/2p/dklw3xys2n3f4hqmx73zvz6w0000gp/T/testacular-61981618/capture.js
39650 ttys019 0:00.82 /usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs /var/folders/2p/dklw3xys2n3f4hqmx73zvz6w0000gp/T/testacular-61981618/capture.js
testacularプロセスがまだ実行中であることがわかります。
それを手動で殺して、典型的なtestacularシャットダウン出力を見てください:
user.name:/my/repo [git: my-branch] $ kill 39639
info: Disconnecting all browsers
error (launcher): Cannot start PhantomJS
user.name:/my/repo [git: my-branch] $
後でIO.popen
手動で強制終了する必要がないように電話をかける方法はありますか?testacular