人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ubuntuでチャットサーバーのプログラムを書いて実行させているのですが、エラーで終了してしまいます。
なので、シェルスクリプトで実行させ、エラーになっても自動で再起動するようにしたいです。
これを書くとどんな感じになるのでしょうか?
ちなみに、実行は
$ ruby -Ku chatserv.rb
で実行しています。

●質問者: shokuen
●カテゴリ:コンピュータ
✍キーワード:Ruby Ubuntu エラー サーバー シェルスクリプト
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● Committeeman
●20ポイント

プロセス監視をするシェルスクリプト

http://www.rhythm-cafe.com/shell/Sample02.aspx


>エラーで終了してしまいます。

そのエラー原因をつぶす事を考えたほうがいいのだろうが、それは不要なのか?


>実行は $ ruby -Ku chatserv.rb で実行しています。

何を参考にして作ったものかわからないが「スクリプトで直に実行するようなもの」なのか?

チャットシステムということはapacheなどのwebサーバからアクセスして使うようなものだと思うが、そのあたりをどのように実装しているかを明かしてデバッグしたほうがいいだろう


2 ● hanako393
●20ポイント

チャットサーバーのポートにアクセスして生きていたらそのまま

死んでいたら起動

cronで定期的にバッチを実行すればよい。


3 ● もっくん
●20ポイント

実行してるやつを替えてみるのはどうでしょう


4 ● fenstrial
●20ポイント

デーモンとして動作させる気がないのなら下のスクリプトでどうでしょう。

単純に無限ループさせているだけです。


#!/bin/sh

while true

do

ruby -Ku chatserv.rb

done


また、プログラムミスでないエラーなら、例外処理を使ってみてはどうでしょうか。


5 ●
●20ポイント

プログラムは書いたようにしか動かないものですが、

エラーで終了する。というふうに書いてあるからです。

そのようなことを書いてはいないと。思われるかもしれませんが、

例外なりが発生しても終了しないように書かないと終わってしまいます。

とりあえずはデバッグでしょうけど。終了してしまう箇所を探し、原因を見つけて終了しない事にする。

かと思います。

昔perlでエラーをキャッチして落ちないようにするのにevalばっかり増えてしんどい思いをしましたが、いまのrubyなんかではいけるんじゃないのですかね。

フロントのweb部分とバックエンドのデーモンなにかを作ってあげるといいような気もしますが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ