質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

5回答

6675閲覧

node.jsのスクリプトをログアウトした後も動き続けるようにしたい

Anon_

総合スコア334

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2016/10/04 07:02

node.jsに関して質問させてください。
ターミナルからnode app.js とした後、ターミナルを閉じた後もスクリプトを動かし続けたいのですが、その場合foreverなどもモジュールを使用しなければならないという解釈であっていますでしょうか。

ご回答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

質問に質問するんですが、
foreverを入れて
forever start app.js
では駄目なんでしょうか?

投稿2016/10/04 08:45

date

総合スコア1820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

nohupコマンドにて解決いたしました。
ベストアンサーは一番早かった方にいたします。

ご回答ありがとうございました。

投稿2016/10/04 08:42

Anon_

総合スコア334

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

テスト中はscreenやtmuxを使い、仮想スクリーン内で実行する方法もあります。

投稿2016/10/04 07:22

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Anon_

2016/10/04 08:20

ご回答ありがとうございます。
guest

0

ログファイルが不必要な場合は

bash

1nohup node app.js >/dev/null &

「ターミナルを開いている間は標準出力を確認したい,但しnohup.outは要らない」という場合は

bash

1cat <(nohup node app.js 2>&1 </dev/null)

備考: nohupコマンドでnohup.outではなく標準出力に出力する方法 - システム開発メモ

上記に続いて「ターミナルを閉じてしまったプロセスの標準出力をもう一度確認したい」という場合は

bash

1# Linux用 2tail -f /proc/プロセス番号/fd/1 3 4# OSX(macOS)用 5sudo dtrace -p プロセス番号 -qn ' 6 syscall::write*:entry 7 /pid == $target && arg0 == 1/ { 8 printf("%s", copyinstr(arg1, arg2)); 9 } 10'

備考: osx - How can I capture the stdout from a process that is ALREADY running - Stack Overflow

投稿2016/10/04 07:20

編集2016/10/04 07:31
mpyw

総合スコア5223

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Anon_

2016/10/04 08:25

ご回答ありがとうございます。 上記コマンドを実行したところ nohup: ignoring input and redirecting stderr to stdout nohup: failed to run command `node': そのようなファイルやディレクトリはありません というエラーが表示されてしまいました。 原因を探っておりますが何か原因となるものがお分かりになるようでしたらご返信いただけると助かります。
Anon_

2016/10/04 08:39

すみませんroot権限で実行できました。 ご回答ありがとうございました。
NOTEPAD

2016/10/04 08:44 編集

node のフルパスを指定したらいいと思います。 node コマンドが PATH に無いんだと思います。 # which node で調べて nohup /usr/local/bin/node ... こんなかんじで
Anon_

2016/10/06 02:10

mpywさん "「ターミナルを開いている間は標準出力を確認したい,但しnohup.outは要らない」という場合" が丁度知りたかったところですので非常に助かります。 ありがとうございました。
guest

0

ベストアンサー

nohupコマンドを利用し、バックグラウンドで実行しましょう。

bash

1nohup node app.js > out.log 2> err.log &

参考:
nohupコマンド http://www.codereading.com/nb/ignore-the-hangup-signal.html
ジョブ管理について http://kazmax.zpp.jp/linux_beginner/jobs.html

投稿2016/10/04 07:16

編集2016/10/04 07:20
moriyama

総合スコア259

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Anon_

2016/10/04 08:31

ご回答ありがとうございます。 こちらのコマンドを実行した場合err.logに下記が記載され、実行されませんでした。 nohup: ignoring input and redirecting stderr to stdout nohup: failed to run command `node': そのようなファイルやディレクトリはありません こちらの環境に不備があるとおもわれますので、現在原因を調査中ですが何か手掛かりにかるようなものがございましたらご返信いただけると助かります。
Anon_

2016/10/04 08:39

すみませんroot権限で実行できました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問