GNU/Linux >> Linux の 問題 >  >> Ubuntu

起動時にRubyプログラムを実行しますか?

私は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クックブックの場合。


Ubuntu
  1. 起動時にVncサーバーを起動する方法は?

  2. Ubuntuサーバーに1つのGUIプログラムをインストールする方法は?

  3. バックエンドで Java プログラムを実行する

  1. Ubuntu16.04でHadoopMapReduceプログラムを実行する方法

  2. utorrent起動スクリプト/起動時にutorrentを実行– Ubuntu 14.04 / 14.10

  3. Androidエミュレーターの起動に失敗しました:プログラムを実行できません

  1. UbuntuでCプログラムをコンパイルして実行する方法

  2. 起動時にGUIプログラムを実行しますか?

  3. より速く開始するためにプログラムをプリロードする方法は?