知らないことを調べた結果を蓄積する

AWSのEC2へSSH接続などして、nodejs+expressで作ったアプリをバックグラウンド起動させ、
ターミナルを落としても起動させ続けたい場合。

バックグラウンドで動かすには、npm start の後ろに「&」を付ければ良い。
ただしこれだと、ターミナルが落ちた際に、終了の信号が発生して、アプリも死んでします。
そこで、終了の信号を受け付けない「nohup」を組み合わせる。
nohup npm start &

基本はこれでよい。ただし、SSH接続特有の問題として、標準入力を切っておかないと正しく動かない問題があるので
nohup npm start < /dev/null &

とする。また、標準出力や標準エラーを指定のファイルに出したい場合は、
nohup npm start < /dev/null 1>standert.log 2>err.log &

と、標準出力は「1>ファイル名」、標準エラーは「2>ファイル名」にする。
標準出力と標準エラーを同じファイルに出したい場合は、
「 1>ファイル名 2>&1 」としたらよい。
nohup npm start < /dev/null 1/standert.log 2>&1 &

以上。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます