それでは、上記の問題を解決するために永遠にプラススタートアップスクリプトを使用できますか?答えはもちろんそうですが、それは少し面倒であり、公式には永遠に詳細な構成文書がありません。また、構成する際にいくつかの迂回路を取りましたので、以下の詳細について説明します。
注:この記事の実験環境は、Ubuntu Server 12.04 LTS X86_64であり、CentOSの構成はより簡単です。
最初は、 /etc/rc.localにxxxを永遠に追加することを考えましたが、ubuntu(他のシステムと同じ)は私にとって悪くないことがわかりました。主な矛盾は、MongoDBがこの方法を使用して実行できることですが、永遠にできません。必死に、/etc /init.dの観点から考慮すべきです。
前提は、最初に永遠に作ることです。この方法は非常に簡単です。次のコマンドを実行するだけです。
NPMは永遠にインストールされます-g
インストールが完了したら、簡単なノードプログラムを使用してテストします。
永遠にtest.jsforever stop test.jsforeverを再起動しますtest.js
エラーがプロンプトされていない限り、それは永遠に使用可能であることを意味します。つまり、バックグラウンドでノードプロジェクトを開くために永遠に使用するための基本的な条件はすでに満たされており、残りはスタートアップスクリプトを書くことです。
スクリプトの基本的な内容は、元の著者のおかげで次のとおりです。
# node.jsdeamon =/node.js/xiyoulibnodeexpress/bin/www #here独自のノードプロジェクトのスタートアップスクリプトファイルを入力する必要がありますlog =/node.js/log/log #optional、log file directory pid =/node.js/pid#relocal/pidの録音#ノード実行可能ファイルプログラムのインストールディレクトリの指定ここで、私のものは/usr/local/binexport node_path = $ node_path:/usr/local/lib/node_modules#ノードクラスライブラリのパスです#以下のコンテンツは、変更されたnode = nodeforever = forevercase "$ 1"停止)$ forever stop -pidfile $ pid $ deamon ;;停止)$ forever stop -pidfile $ pid ;; restartall)$ forever restartall - pidfile $ pid ;; RELOAD | RETSTART)$ FOREVER RESTART -L $ log -Pidfile $ pid -a $ deamon ;; list)$ foreverリスト;; *)echo "usage:/etc.init.d/node {start | stop | restart | reload | stopall | restartall | list}" exit 1 ;; esacリマインダーは次のとおりです。/node.jsなどのノードプロジェクトのルートディレクトリにディレクトリを作成し、許可を754に設定することをお勧めします。
Ubuntuサーバーシステムを使用しているため、MongoDBスタートアップサービスも構成されており、次のステートメントがinit.dスクリプトに追加されます。
#必須スタート:$すべて#reburned-stop:$ all
そのため、将来自分で追加すると、システムはエラーを促します。したがって、ノードプロジェクトのスタートアップスクリプトで、Ubuntuサーバーシステムに以前の一連の説明コメントを追加してセットアップしました。 Centosにある場合、同様の問題は発生しないはずです。これに特に注意してください!
つまり、次の説明情報:
### begin init info#decribes:xiyoulib#rebys-start:$ all#reburned-stop:$ all#default-start:2 3 4 5#デフォルトストップ:0 1 6#short-description#daemonを開始します。
スクリプトが編集された後、ChkConfig - リストディレクティブを使用して、追加したサービスが効果的か、つまり3と5すべてが自己開始を達成するためにオンにする必要があるかどうかを確認します。
3と5がオンに設定されていない場合は、chkconfig - レベル35 [サービス名]を実行してください。 Ubuntuサーバーはいくつかの警告を報告する場合がありますが、必要なサービスの3と5をオンに変更できる限り、他のエラーを無視できる限り(これはシステム独自のビジネスだと思います)。
セットアップが完了した後、Linuxでノードプロジェクトを開始できます。シャットダウン-Rは、開始できるかどうかを確認してみてください。開始後、設定したポート番号と仮想ディレクトリに直接アクセスできます。必要に応じて、タスクが行われます!
ただし、間違っている場合は、いくつかのスクリプトを慎重に確認し、エラーに基づいて関連する変更を行います。結局のところ、私も試してみました!