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

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

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

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

Q&A

解決済

2回答

1675閲覧

Node.jsのpm2をWindows10で起動すると、コマンドプロンプトが数秒おきに立ち上がっては消えるを繰り返す

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

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

0グッド

0クリップ

投稿2018/09/28 07:14

編集2018/09/28 14:13

この質問は、同じ現象を経験したことがある方でないと何を言っているのかがあまりわからないと思います。ご承知おきください。

Windows10のコマンドプロンプトで

pm2 start somethingExectable.js

とすると、数秒おきに新しいプロンプトが一瞬だけ表示されて消えるという現象が起こります。これだとうまく使いにくいのでこの問題の対処の方法がわかる方いらっしゃいましたら教えてください。

pm2: http://pm2.keymetrics.io/

管理者権限のあるプロンプトで実行しても、Powershellで実行しても無駄でした。


miyabi-sunさんのご意見より、ためしに

JS

1var i = 0; 2setInterval(()=>{ 3 console.log(i++); 4}, 1000);

なるスクリプトを pm2 start で動かしたらエラーは起こらなかったので、somethingExectable.js自体に問題がある可能性があります。

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

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

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

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

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

miyabi-sun

2018/09/28 09:22

「somethingExectable.js」の中身がわたし気になります!execから任意コマンド実行とかしてませんか?PM2の仕事はエラー落ちしたNode.jsのファイルを「おらーさっさと立ち上がれ」でまた立ち上げるものなんで、その辺も見ておきたいですね。
退会済みユーザー

退会済みユーザー

2018/09/28 14:01 編集

ご回答ありがとうございます。「execから任意コマンド実行」というのがわからないので教えていただけませんか?エラー落ちで再開してるパターンは思いつかなかったので確認してみます。ちなみに、somethingExectable.jsはExpress-generatorが作ったbin/wwwのことです。問題があまり切り分けできていなくて、一般的にこのような事象が起こるかどうかだけお尋ねしたかったです。
guest

回答2

0

pm2というのは全く知りませんが、非コンソールアプリからコンソールアプリを起動すると、コンソールアプリ稼働用にCMDのウィンドウが開いて、そのコンソールアプリが終わると消えます。
プログラムもしくはライブラリの中で「一瞬で終わるコンソールアプリ」を使っているのではないでしょうか?

以前経験したのは、ライブラリでcmd /c verが呼ばれてました(verをパイプ経由で起動して出力を読み取る)。

投稿2018/09/28 08:20

otn

総合スコア84491

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

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

退会済みユーザー

退会済みユーザー

2018/09/28 14:00

Linux等を想定しているアプリケーションをそのままwindowsで動かすとその理由で必然的にそうなってしまうということなのでしょうか。
otn

2018/09/28 14:12

そういうケースもあるでしょうね。 Windowsでの稼働を考慮してあっても、Windowsだと標準入出力を扱うプログラムだとコンソールアプリになるので、ウィンドウが開いてしまいます。 私の経験したケースだと、 > verをパイプ経由で起動して出力を読み取る という部分をえいやっと、"Microsoft Windows [Version 6.1.7601]"という固定文字列に書き換えて、verの起動をなくしました。 そのコンソールアプリを起動している部分を突き止めて、外部アプリを起動するのでなく、node.jsで全部書き換えてしまうと言う方法くらいでしょうか。
退会済みユーザー

退会済みユーザー

2018/09/28 14:17

なるほど、わかりました。miyabi-sunさんがおっしゃっているように、ここでは僕のコード(この質問では触れていない範囲の問題です)自体の問題さえ取り払ってしまえば、otnさんが説明されている現象が起こったとしてもそもそも気になるレベルにはならなさそうなので、おそらく仕様としては許せる範囲な気がしました。 仕組みがわかってスッキリしました。ご丁寧にありがとうございました。
otn

2018/09/28 14:39

miyabi-sunさんが、「execを使っていませんか?」というのは、そもそもexecだと、cmd.exeを起動するので、ウィンドウが出て当然と言うことだと思います。 spawnやexecFileなどを使い、cmd.exeを経由しない呼び方で非コンソールアプリを起動すればウィンドウは出ないと思いますが、コンソールアプリを呼ぶならウィンドウが出るのは致し方ないと思います。
退会済みユーザー

退会済みユーザー

2018/09/28 14:50

なるほど、そういうことでしたか。Express-generatorが作った雛形に手を加えただけのWEBアプリケーションなので、依存ライブラリが使っているのかどうかとの関連はまだわかっていないですが、それを目星につけて探してみます。
guest

0

ベストアンサー

決してpm2側に問題があるわけではなく、対象のスクリプトになにかエラーが起こっている場合にこのような現象が起こってしまう。(windowsに限る)

投稿2018/09/28 14:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問