自動起動でプロセスをデーモン化する

自動起動でプロセスをデーモン化する

Ruby で書かれた簡単なスクリプトがあります。

  • バックグラウンド タスク (デーモン プロセスまたはサービス) として実行したいと思います。
  • さらに、開始および停止できるように制御したいと考えています。
  • VPS が再起動したときにプロセスが自動的に開始されれば完璧です。

それを実行する方法はありますか?

答え1

実は、私はそれに対する完璧な解決策を見つけました。それはupstart標準的なサービスよりもはるかに簡単ですrunitsystemd

より詳細な手順は次のとおりです。 http://blog.arkency.com/2014/06/create-run-and-manage-your-background-processes-with-upstart/

それは次のようなものです:

/etc/init/my_program_upstart_script.conf

start on my_event
respawn
exec /home/my_user/my_program/my_program_executable

はい、とても簡単です!

でプログラムを実行するだけですsudo initctl emit my_event

答え2

簡単な方法は、アプリケーションを起動/停止する bash スクリプトを作成することです。/etc/init.d/skeleton例に従ってください。

スクリプトをインストールします:

    sudo copy yourApplicationCtl /etc/init.d
    sudo chmod +x /etc/init.d/yourApplicationCtl

サーバーの起動時にアプリケーションを起動し、シャットダウン時に停止するには:

    sudo update-rc.d yourApplicationCtl defaults

アプリケーションを手動で起動/停止する場合:

    sudo service yourApplicationCtl start/stop

役に立つリンクは次のとおりです:Ubuntuの起動方法、マニュアルページアップグレード-rc.dそしてサービス

関連情報