私はrubyを使用して小さなwebSocketサーバーを作成しました。次のコマンドを使用してコマンドラインから実行します:
ruby websocket_server.rb
これにより、サーバーが起動し、ssh接続を開いて実行し続けるまで機能します(リモートサーバーファームにあるサーバーでこれを実行しているため、直接アクセスできません)。
理解したい2つのスクリプトの書き方。1つは起動時にrubyプログラムを起動し、もう1つはプログラムが稼働しているかどうかを(たとえば30分ごとに)チェックします。
補足として、私の最終目標は「 phpダッシュボードの「ボタン」をクリックして、チェックと再起動のプロセスを待たずにプロセスがハングした場合にプロセスを再開します(プロセスのステータスはすでに確認できています)。
承認された回答:
Ubuntu14.04はupstartを使用します 、したがって、
upstartでサービスを管理する方法を示す小さな構成ファイルを作成できます。たとえば、
「myweb」という名前を付けます。 sudoを使用して、/etc/init/myweb.conf
というファイルを作成します (
そこから実際のファイルへのシンボリックリンクは機能しません)
次のような内容のコンテンツ:
description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb
これは
でテストできますsudo start myweb
status myweb
sudo stop myweb
status
コマンドは、プロセスがまだ実行されているかどうかを示します。 respawn
死んだら、自動的に再起動したいということです。 start、stop、statusコマンドはすべてinitctlへのリンクにすぎません。
man initctl
を参照してください。 、man 5 init
confファイル形式とupstartクックブックの場合。