特定の処理を監視するため、シェルスクリプトを常駐させることになった。
常駐処理は無限ループと待機の組み合わせで実現できる。
まず while コマンドに真(0 以外)を指定して無限ループにする。
ループ内に常駐処理を書く。
その処理が終わったら sleep コマンドで一定時間待機する。
これでスクリプトを終わらせない限り、一定時間毎に処理させるようにできる。
サンプル
次のシェルスクリプトは、5分毎に処理を実行する。
#!/bin/csh
while (1)
# 処理実行
# TODO: ここにループで実行する処理を書く
# 5分待機
sleep 300
end常駐シェルスクリプトの止め方
常駐シェルスクリプトは明示的に処理を止めるまでずっと動き続ける。
シェルスクリプトを停止するには、kill コマンドでプロセスを終了させる。
まずは ps コマンドで PID を取得する。
ps コマンドには -o オプションで表示形式を指定しておいたほうが見やすい。
プロセスID、コマンド、引数を出力 → ps -o pid,comm,args
それから kill -KILL 〈PID〉 でプロセスを終わらせる。