web-dev-qa-db-ja.com

ブートサービスを作成して、マシンのブート時にnode.jsアプリを起動する方法

私のマシンはUbuntu16.04です。マシンが毎回起動するときにnode.jsアプリケーションを起動したいと思います。これによると post サービスの自動起動について。私は次のことをしてサービスを作ろうとしました:

1)ノードのforeverモジュールを使用してノードアプリを起動するスクリプトを作成しました。

#!/bin/bash

echo "Starting App"

forever -a start /opt/app/app.js

echo "App started"

2)このスクリプトにstartApp.shそしてこのスクリプトを/ etc/init.d /フォルダー内に置きます。

3)コマンドupdate-rc.d startApp defaults

しかし、エラーが発生しましたupdate-rc.d:エラー:initscriptが存在しません:/etc/init.d/startApp

何を間違えたのですか?

1
b11

これを実現するには複数の方法がありますPM2PM2を使用して、予期したまたは予期しないマシンの再起動時に起動する起動スクリプトを作成できます。

http://pm2.keymetrics.io/docs/usage/startup/

DockerDockerfileを作成して--restart = alwaysタグを付けて実行することを好みます

シェルスクリプトを続行する場合次に、unixのcrontabを使用します。非常に使いやすく、数分で構成できます

  1. Crontabを編集して、以下を実行し、「USER」をノードプロセスの目的のランタイムユーザーに置き換えます。自分以外のユーザーを選択した場合は、Sudoで実行する必要があります。

    $ crontab -u USER -e

  2. エディタに移動したら、次の行を追加します。

    @reboot/usr/local/bin/forever start /your/path/to/your/index.js else

    @reboot sh /your/path/to/your/startApp.sh

  3. #1のチェックコマンドでファイルの保存と確認を再度行う

    注:私の意見では、問題を防ぐためにcrontabファイルのフルパスを使用する必要があります

このURLリファレンスを参照できます buntu Cron HowTo

3
Chandani Patel