1

Vagrant/Puppet (puphpet.com から生成) を使用して、Ubuntu 環境に node.js アプリをセットアップしました。完成したパッケージを誰かに送り、「vagrant up」が完了した瞬間に node.js アプリを実行してもらいたい (そうすれば、ssh 経由で接続してコマンドを実行する必要がなくなります)。 .

puphpet ダウンロード パッケージには、フォルダ /puphpet/files/start-always および /exec-always が含まれていますが、これらを使用できるかどうか疑問に思っています。

または、私が間違っていなければ、.Vagrantfile の最後にいくつかの Ubuntu 実行コマンドを追加することも可能かもしれません (構文がわからないだけです)。

誰でもこれを経験したことがありますか?

4

1 に答える 1

5

解決策:それを理解しました。知っておく必要がある人のために:/puphpet/files/exec-onceと呼ばれるファイル (または必要なフォルダー/頻度) を作成しますrun.sh(これらのファイルはアルファベット順に読み込まれるため、複数ある場合は適切な名前を付けてください)。サンプルファイル:

#!/bin/bash
sudo npm install pm2 -g --unsafe-perm 2&>1 >/dev/null
cd /var/www/app && sudo pm2 start app.js

この場合、「pm2」という npm モジュールをインストールします (2&>1 >/dev/nullコンソールとエラー メッセージを非表示にします)。このモジュールを使用すると、node.js アプリをサービスとして実行できます。次の行をcdapp dir に入力し、そこから . でアプリを開始しsudo pm2ます。

/exec-onceおそらくこの時点から、node.jsアプリは自動的に実行/再起動するため(アプリがクラッシュしたときやUbuntuが再起動したときを含む)、このコマンドを複数回実行する必要はありません(したがって、exec-always実行される. 「vagrant up」が呼び出されるたびに、初期セットアップ後の将来の起動を含みます)。

pm2 には、開発中の場合に node.js アプリが自動的に再起動されるように、フォルダー内の変更を監視できる機能もあります。詳細については、pm2 のドキュメントを参照するかpm2、ssh と入力してください。

于 2014-09-22T05:07:57.730 に答える