11

件名があいまいな場合は申し訳ありませんが、可能な限り問題を説明しようとしました。コードシップを使用してデプロイしたいラズベリーパイがあります。ファイルの再同期は完全に機能しますがpm2、問題が発生してアプリケーションを再起動すると発生します。

ノード バージョン マネージャー NVM を使用してノードと pm2 をインストールしました。

ssh pi@server.com 'source /home/pi/.bashrc; cd project; pm2 restart app.js -x -- --prod'0 min 3 sec
bash: pm2: command not found

私も追加しました:

shopt -s expand_aliases私の底にありますbashrcが、それは役に立ちません。

デプロイ後にアプリケーションを再起動するにはどうすればよいですか? 賢明なアドバイスとより良い知恵をよろしくお願いします!

編集 1 : 私の .bashrc http://pastie.org/10529200 私の $PATH:/home/pi/.nvm/versions/node/v4.2.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

編集 2 : /home/pi/.nvm/versions/node/v4.2.0/bin/pm2pm2 へのフルパスを追加したところ、次のエラーが発生しました。/usr/bin/env: node: No such file or directory

フルパスを指定してもノードが実行されないようです。

4

6 に答える 6

7

スキマが言ったように、これは環境の問題が原因である可能性があります.SSHでサーバーに接続しても完全な環境は設定されません. ただし、コマンドの開始時に . operator (「source」コマンドと同じ):

ssh pi@server.com '. /etc/profile ; cd project; pm2 restart app.js -x -- --prod'

/etc/profile 自体は、関連するユーザーの .bashrc を呼び出すように設定する必要があるため、その部分を削除しました。以前の職場では、概念実証スクリプトを迅速に作成するために、これをかなり頻繁に行う必要がありました。より永続的なスクリプトの厄介なハックと見なされるかどうかはわかりませんが、確かに機能し、問題が発生した場合に既存のスクリプトを最小限に変更する必要があります.

于 2015-11-10T12:22:14.170 に答える
5

試す:

ssh pi@server.com 'bash -l -c "source /home/pi/.bashrc; cd project; pm2 restart app.js -x -- --prod"'
于 2015-11-06T15:28:46.067 に答える
5

「source」またはドットコマンド「.」でいくつかの環境値を有効にする必要があります。ここに例があります。

ssh pi@server.com '. /home/pi/.nvm/nvm.sh; cd project; pm2 restart app.js -x -- --prod'
于 2018-11-27T09:21:10.970 に答える
1

私にとってうまくいったのは、これを私のに追加することでした.bash_profile

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

ソース: https://stackoverflow.com/a/820533/1824444

于 2016-03-13T12:17:00.723 に答える