nmtysh.log

Tech系のネタや日々の独り言などを書いています。

ミドルウェアによって起動スクリプトの中身が違うのがどうにも……

ミドルウェアの起動スクリプトソースコードについてきたものだったり、rpm/debに同梱されているものをそのまま使うのですが、
その処理ロジックがミドルウェアによってまちまちなのが困りどころです。

例えば restart() 処理時に内部的に stop()/start() を呼び出しているものがある一方、 restart() 専用のものがあったりします。
なのでservice hoge restartではなく、service hoge stop && service hoge startが良いと言う人も居ます。

今日引っかかったのは stop() した後にそのプロセスが完全終了するのを待たずに起動スクリプトが終了してしまうというものでした。
stop && start しようにも start() の時点で stop() が完了していないので start() されないという……
あるいは start() のステータスチェックでプロセス起動中と判定され start() がngになったり。

シェルスクリプトの中などでミドルウェアの再起動を行う場合は起動スクリプトの中身までちゃんとチェックしたうえで必要な処理を書き加える必要がありますね。
スクリプトのテストで気がつけば良いのですが、タイミングの問題で発見できないことがあるので中々難しいです。