停止コマンドを実行すると、以下のメッセージが出ますが、停止・起動は問題なくできています。
「/export/home/SUNWwbsvr/https-admserv/stopScheduler: kill: そのようなプロセスは存在しません。」
上記パスにあるシェル:stopSchedulerの記述は以下です。
% more stopScheduler
#!/bin/sh
PID_FILE=/export/home/SUNWwbsvr/https-admserv/logs/scheduler.pid
if test -f $PID_FILE; then
kill -TERM `cat $PID_FILE`
if test $? -ne 0; then
exit 1
else
rm $PID_FILE
fi
else
echo "schedulerd daemon not running."
exit 1
fi
COUNTER=1
MAX_COUNT=30
while test $COUNTER -le $MAX_COUNT; do
COUNTER=`expr $COUNTER + 1`
if test -f $PID_FILE; then
sleep 2
else
echo "schedulerd daemon has been shutdown."
exit 0
fi
done
echo "server not responding to exit command"
echo "killing process group"
kill -9 -`cat $PID_FILE`
rm $PID_FILE
exit 1
●シェルに記述されている内容からエラーの理由がわかりますでしょうか?
●記述から判別できない場合、どのようなことをした(状態)である場合
エラーが出ることがかんがえられますでしょうか?
コマンドを実行する前に、下記のファイルの中身を見てみてください。
/export/home/SUNWwbsvr/https-admserv/logs/scheduler.pid
数値が書かれていると思いますが、ターミナルで
ps
と実行した結果にその番号があるでしょうか。
あった場合、コマンドを実行してエラーが出るようなら、ほかの原因の調査が必要ですが、
その番号がない場合、該当のエラーメッセージとなります。
つまり、起動時にプロセスIDをファイルに保存しており、それを終了しようとしたときに
そのプロセスが既に存在していなかったというのが、推測される状況です。
http://www.coins.tsukuba.ac.jp/~yas/coins/syspro-2004/2004-04-12...
古いscheduler.pidファイルが残ってしまっているために、正常終了したWEBサーバプロセスとは無関係にkillコマンドが発せられているからではないでしょうか。(if test -f $PID_FILE → kill)
試しに、rmコマンドでscheduler.pidを消してみては如何でしょうか?
上記シェルスクリプトでは、killコマンドが失敗した場合には$PID_FILEが削除されないので、一度残ってしまった$PID_FILEはそのまま次の停止時にも使用されてしまいます。また、このようなことが二度と起こらないようにするためには、上記スクリプトの最後にrmコマンドで$PID_FILEを削除するようにすれば良いでしょう。なので、killコマンドの成功・失敗を判定している部分は不要になります。
ahirusanさん
確かに、Mookさんの返答でも書きましたが、現在存在しないプロセスIDが
記述されていました。
>正常終了したWEBサーバプロセスとは無関係にkillコマンドが発せられているからで>はないでしょうか。
if test -f $PID_FILE → kill →この記述が、あるために正常終了のはずが
killしてしまっているということでしょうか。
実際には、stopSchedulerで停止しているのではなく、stopシェルで実行している
のですが、stopSchedulerを見てしまうのでしょうか。
killコマンド失敗時には、PID_FILEがクリアされないという点は大変参考となりました。
Mookさん
scheduler.pid には、番号がありました。
export/home/SUNWwbsvr/https-admserv/logs
% ls
access errors pid scheduler.error scheduler.pid
%
vupweb01% more scheduler.pid
1899
なお、psコマンドを打つと、1899のプロセスIDは存在しませんでした。
なので、Mookさんのおっしゃる推測にあてはまりそうな気がします。