○自作プログラムをデーモンとして起動させる


■自作プログラム

#include <stdio.h>

main(){
	while(1){
		sleep(10);
	}
}

上のプログラムをコンパイルし、test.exe実行ファイルを作成します

■実行ファイルの準備

/usr/test.exe にファイルをコピーします

▼システムが実行できるように保護モードを変更します

chmod 755 test.exe

■デーモンとしてシステムに登録

▼シェルスクリプトの作成
/etc/init.d/ ディレクトリを開き、その中に実行ファイルを実行するシェルスクリプトを作成します

▽エディタでテキストファイル test を作成します
その中に

/usr/test.exe &

と一行書き込み保存します
このとき最後に & を付け忘れると、プログラムが終了するまでシステムの起動が停止します。

▽テキストファイルの保護モードを変更し実行可能にします

chmod 755 test

▼システムから呼ばれるシンボリックリンクの作成

/etc/rc3.d/ のランレベル3のディレクトリに移動します(1〜5まで必要な所に移動してください)

▽その中に上で作成したシェルスクリプトのシンボリックリンクを作成します

▽シンボリックリンクの命名規則
S + 二桁の数字 + シェルスクリプトの名前

(二桁の数字により他のデーモンとの実行順序が制御できます)

▽シンボリックリンクの作成

ln ../init.d/test S10test


■以上でOSを再起動させると /use/test.exe がデーモンとして動いているはずです


■デーモンの手動での起動と終了
▼起動
/etc/rc3.d/ に移動してシンボリックリンクを直接実行(logoutしても生き続けます)
./S10test

▼終了
psコマンドでPIDを調べてkillしてください


■その他

perlスクリプトなどもデーモンとして動かすことができます
その場合はシェルスクリプトを以下のように読み替えてください。

perl /usr/script.pl &



▲トップページ > Linux と C