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

phantomjs を適切にストップするには

phantomjsは便利なんだけど、プロセスが何故かゾンビ化してリソースを圧迫するなんてことがあります。
python + selenium + phantomjsで運用していますが、
大抵は、dirver.close()、dirver.quit()でスットプできますが、たまに生き残ります。

pgrep phantomjs | xargs kill

シェル側からphangomjsを強制的にkillしてしまうのが確実で、これをpython スクリプトに仕込んどけばOKです。
ただし副作用もあって、これだと他のすべてのphantomjsをkillしちゃうので、人を選ぶわけです。

import signal

driver.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
driver.quit()                                      # quit the node proc

といのが良いのかなという感じみたいです。