←前 |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次→

WebObjectsのstopを成功させる


以前からWebObjects(wotaskd)の停止が失敗しており、自動再起動ができない状態でした。

wotaskdがいつの間にか死んでいて、再起動しようとするも失敗している、といった状態にたまになります。

おそらく原因は

System/Library/StartupItems/WebObjects/WebObjects

のStopServiceです。
こいつを

% sudo SystemStarter stop "WebObjects Services"

として呼び出すと、

StopService:kill:31: illegal pid: 474
StopService:kill:31: illegal pid: 478


という感じでエラーになります。
実際に手で実行するとうまく行きます。ひょっとしてと思い、

#kill them all at once
kill $parents $children




#kill them all at once
#kill $parents $children
/bin/kill -TERM $parents $children


と変えたところ、うまく動作しました。
stop単体もrestartももちろんOK。

ということは、ネットワークが死んで復活したときに、WebObjectsも復活可能ということになります。
以前のエントリ で記述したネットワークが復活するときに実行されるenable-networkに

/System/Library/StartupItems/WebObjects/WebObjects restart


の一行を追加し、以下のように変更。

#!/bin/sh
#
# network configuration has changed
#
logger -i -p daemon.debug -t enable-network "process network configuration change"

. /etc/rc.common
CheckForNetwork
if [ "${NETWORKUP}" = "-NO-" ]; then exit 0; fi

/System/Library/StartupItems/NetworkTime/NetworkTime start
/System/Library/StartupItems/NIS/NIS start
/System/Library/StartupItems/NFS/NFS start

# add by kuki
/System/Library/StartupItems/BIND/BIND restart
/System/Library/StartupItems/WebObjects/WebObjects restart

exit 1

再起動してみる。うーん、いい感じに動作している感じ。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2004年10月17日 (日) at 15:41       
 

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→
←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→