前回作成したディレクトリ監視ツールのつづき。
これをどうやってバックグランドで実行するか検討。
linux
の場合、コマンドラインの最後に&
を追加することによって、バックグラウンド
でプロセスを実行することができるが、実行したターミナルのセッションが切れると、バックグラウンドプロセスも終了してしまう。
このため、セッションが切れても実行し続けるnohup
コマンドを使って検討してみる。
まず、nohupコマンドで実行するシェル(dirmon.sh)を作成する。
#!/bin/bash
php dir_monitor.php $1
以下のように実行した後、実行したターミナルを終了する。
# nohup ./dirmon.sh temp2 &> monitor.log &
別のターミナルから上記のプロセスが生きているか確認。監視プログラムが動作していることが確認できる(プロセス5247) 実際に監視ディレクトリにファイルをコピーし、monitor.logに検知したログが出ていれば、問題なし。
> ps aux | grep php
5247 0.0 0.0 18444 4748 pts/4 S 14:11 0:00 php dir_monitor.php temp2
5280 0.0 0.0 2308 560 pts/4 S+ 14:24 0:00 grep --color=auto php