Skip to content

maildrop/daemonic

Repository files navigation

daemonic

このプログラムは、 Google APP Engine の dev_appserver.sh のように、制 御を戻さないプログラムをデーモンのように動作させるためのプログラムであ る。実行をすると、このプログラム自体はfork(2) して、子プロセスを生成した後に すぐに制御を戻す。

子プロセスは、/usr/bin/logger を exec するプロセスと、ターゲットプログ ラムの実行をする子プロセスをフォークしたのち、ターゲットプログラム を制御し、PID ファイルを管理するプロセス(便宜上 コントロールプロセ スと呼ぶ)がselect(2) でターゲットプロセスの停止と、コントロールプ ログラムに送られるシグナルを待つ。

コントロールプロセスのPID は、PID ファイルに書き込まれ if [ -f /tmp/daemonlize.pid ] ; then kill -INT ``cat /tmp/daemonlize.pid`` ; fi でプロセスに INT シグナルをスクリプトを書きやすくする。

ターゲットプロセスの標準入力は、/dev/null につなげられ、標準出力と 標準エラー出力は、/usr/bin/logger へパイプでつなげられる。

コントロールプロセスが、INT シグナル(と HUP シグナル)を受け取った 時には、ターゲットプロセスに対して、INTシグナルを送り、プロセスの終 了を待って終了する。ターゲットプロセスが、先に終了した場合にも 本プロセスは終了する。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published