Node.jsアプリを動かすときは、node app.js
や npm start
などのコマンドを実行します。
しかし、コマンド実行したターミナルからログアウトしてしまうと、アプリも終了してしまいます。
AWSでEC2立ち上げて、sshでつないで、npm start
して、アプリが動いた!のでsshを切る、とアプリも終了してしまいます。
sshを切ってもアプリを起動しておくには、いくつか方法があります。
その中でも今日はnohup
コマンドを使う方法です。
##コマンド
常駐化するには以下のようにコマンドを実行してアプリを起動します。
$ nohup node app.js &
nohup command [コマンドの引数]
&
によってコマンドがバックグラウンドで実行されます。
nohupをつけることで、ログアウトしてもアプリが実行され続けます。
nohupで実行されたコマンドの、標準出力と標準エラー出力はnohup.out
に出力されます。nohup.outはプログラムを実行しているディレクトリに作られます。(書き込み権限がない場合は、$HOMEに作られます。)
###出力先を変更する
標準出力と標準エラー出力の出力先を変更する場合は、nohup
コマンドを実行する際に以下のようにします。
$ nohup node app.js > out.log 2> error.log &
> out.log
で標準出力の出力先がout.logになり、2> error.log
で標準エラー出力の出力先がerror.logになります。