tyrantmanager を使用して Tokyo Tyrant のいくつかのインスタンスを管理しています。正常に動作しています。
起動時に起動させたいので、/etc/rc.local
に次のコマンドを追加します。
/usr/local/bin/tyrantmanager start --home=/data/tyrant/
(これはコマンドラインから実行する場合は問題ありません)
先週、サーバーがハングし、ハードリセットする必要があります。起動後、ログインして、noTokyoTyrantインスタンスが実行されていることを確認します。
次回の起動時に正常に起動することを確認するためにテストする方法はありますか?出力とエラーを>> /var/log/tyrantmanager.log 2>&1
のログファイルにリダイレクトすることを除いて、起動に失敗し続ける場合は、「デバッグ」に対して他に何ができますか。
PS:initスクリプトを書くことはできますが、それでもこのケースの根本原因を調べたいと思います。
編集:私は開発サーバーでテストし、同じ結果を得ました。以下はログファイルです。
15:02:17 INFO : Starting test : ttserver -Host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc
/usr/local/lib/Ruby/gems/1.8/gems/logging-1.5.2/lib/logging/logger.rb:429: command not found: ttserver -Host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc
私はRubyに精通していないので、 "command not found"エラー( logger.rb )でRubyが発生した理由がわかりません。多分私はstackoverflowについて質問します。
次のようになります。
私は最初の疑いがあります。
最近使用しているディストリビューションに関係なく、私は自分のレッスンを学びました。起動時に何かが発生することを確認したい場合は、サーバーを再起動して何が起こるかを確認します。サーバーのメンテナンスウィンドウをスケジュールし(必要な場合)、その時点で数回のテスト再起動を実行するだけです。それが機能するかどうかを確認します。
過去には、「これは次の再起動時に開始される」と確信していましたが、その後は開始されません。
rc.local
を手動で実行するには、rc.local
パス(cd /etc/
)に移動し、次のようにします。
$ Sudo ./rc.local
実行中にエラーが発生した場合は、その前に実行してください。
$ Sudo chmod +x rc.local