[解決済み】node.jsアプリケーションを永続的に動作させる方法は?
質問
Debianサーバーに、Node.jsをインストールしました。このコマンドラインでputtyからアプリを起動する方法は理解しています。
node /srv/www/MyUserAccount/server/server.js
で、アドレスに辿り着く
50.51.52.53:8080
(IPとポート)を指定します。
しかし、putty を閉じるとすぐに、そのアドレスに到達することができません。
50.51.52.53:8080
もう
Node.jsアプリケーションを永続的に動作させる方法とは?
ご推察の通り、私はLinuxとNode.jsの初心者です。
どのように解決するのですか?
他の回答はOPの問題を解決するものですが、どれもやりすぎで、なぜこの問題が発生しているのかを説明していません。
鍵はこの行、 "I close putty, then I cannot reach the address".です。
Putty でリモートホストにログインすると、SSH linux プロセスが開始され、その SSH セッションから入力されたすべてのコマンドは、そのプロセスの子プロセスとして実行されます。
あなたの問題は、Puttyを閉じるときにSSHセッションを終了させ、そのプロセスとアクティブな子プロセスを停止させることです。 Putty を終了するときに、不注意にもサーバーを終了させてしまうことです。 フォアグラウンド . この動作を回避するには、サーバーを 背景 のように、コマンドに & を追加してください。
node /srv/www/MyUserAccount/server/server.js &
この問題は、Linuxの知識不足であり、nodeに関する質問ではありません。 より詳しい情報はこちらをご覧ください。 http://linuxconfig.org/understanding-foreground-and-background-linux-processes
UPDATE
他の方がおっしゃっているように、ターミナルを終了するときにノードサーバがまだ死んでしまうことがあります。 私が遭遇した共通の問題は、ノードプロセスがbgで実行されているにもかかわらず、その標準出力と標準エラーはまだターミナルを指していることです。 つまり、ノードサーバが console.log や console.error に書き込むと、パイプが壊れたというエラーを受け取り、クラッシュします。 これはプロセスの出力をパイプすることで回避することができます。
node /srv/www/MyUserAccount/server/server.js > stdout.txt 2> stderr.txt &
問題が解決しない場合は、次のようなことを調べてみてください。 tmux または ノーアップ は、あらゆる種類のプロセス(データベース、ロギングサービス、他の言語)を実行するために使用できるため、ノード固有のソリューションよりもまだ堅牢です。
サーバーが終了してしまう原因としてよくある間違いは、サーバーを起動した後に
nohup node your_path/server.js &
をクリックするだけで、Putty 端末を閉じてしまいます。この場合
exit
コマンドを実行すると、nodeサーバーが起動します。
関連
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] Ubuntuでnodeパッケージマネージャを使用してパッケージをインストールすることができない
-
[解決済み】node.jsアプリをバックグラウンドサービスとして実行するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] E: npm パッケージを見つけることができません。
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み】node.jsアプリをバックグラウンドサービスとして実行するにはどうすればいいですか?