なので、シェルスクリプトで実行させ、エラーになっても自動で再起動するようにしたいです。
これを書くとどんな感じになるのでしょうか?
ちなみに、実行は
$ ruby -Ku chatserv.rb
で実行しています。
プロセス監視をするシェルスクリプト
http://www.rhythm-cafe.com/shell/Sample02.aspx
>エラーで終了してしまいます。
そのエラー原因をつぶす事を考えたほうがいいのだろうが、それは不要なのか?
>実行は $ ruby -Ku chatserv.rb で実行しています。
何を参考にして作ったものかわからないが「スクリプトで直に実行するようなもの」なのか?
チャットシステムということはapacheなどのwebサーバからアクセスして使うようなものだと思うが、そのあたりをどのように実装しているかを明かしてデバッグしたほうがいいだろう
デーモンとして動作させる気がないのなら下のスクリプトでどうでしょう。
単純に無限ループさせているだけです。
#!/bin/sh
while true
do
ruby -Ku chatserv.rb
done
また、プログラムミスでないエラーなら、例外処理を使ってみてはどうでしょうか。
プログラムは書いたようにしか動かないものですが、
エラーで終了する。というふうに書いてあるからです。
そのようなことを書いてはいないと。思われるかもしれませんが、
例外なりが発生しても終了しないように書かないと終わってしまいます。
とりあえずはデバッグでしょうけど。終了してしまう箇所を探し、原因を見つけて終了しない事にする。
かと思います。
昔perlでエラーをキャッチして落ちないようにするのにevalばっかり増えてしんどい思いをしましたが、いまのrubyなんかではいけるんじゃないのですかね。
フロントのweb部分とバックエンドのデーモンなにかを作ってあげるといいような気もしますが。
コメント(0件)