私のマシンは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
何を間違えたのですか?
これを実現するには複数の方法がありますPM2PM2を使用して、予期したまたは予期しないマシンの再起動時に起動する起動スクリプトを作成できます。
http://pm2.keymetrics.io/docs/usage/startup/
DockerDockerfileを作成して--restart = alwaysタグを付けて実行することを好みます
シェルスクリプトを続行する場合次に、unixのcrontabを使用します。非常に使いやすく、数分で構成できます
Crontabを編集して、以下を実行し、「USER」をノードプロセスの目的のランタイムユーザーに置き換えます。自分以外のユーザーを選択した場合は、Sudoで実行する必要があります。
$ crontab -u USER -e
エディタに移動したら、次の行を追加します。
@reboot/usr/local/bin/forever start /your/path/to/your/index.js else
@reboot sh /your/path/to/your/startApp.sh
#1のチェックコマンドでファイルの保存と確認を再度行う
注:私の意見では、問題を防ぐためにcrontabファイルのフルパスを使用する必要があります
このURLリファレンスを参照できます buntu Cron HowTo