現在、GruntJS を使用して Web アプリを実行する Web アプリケーションを実行しています。通常は入力grunt dev
して開始し、ローカルホスト経由で見ることができます。Ctrl + Z
(私は Windows 7 で Cygwin を使用しています) を使用してプロセスを終了すると、grunt dev の実行中に Cygwin が「ハング」するため、正常に終了します。正常に動作した場合の出力は次のとおりです。
Running "shell:nodeStart" (shell) task
INFO: Configuration Override: CONFIG.MONGO.URL_CONNECTION : OK
INFO: Running in single node environment
INFO: MongoDB is ready
info: socket.io started
[1]+ Stopped grunt dev
ただし、コードに変更を加えてからgrunt dev
再度入力すると、Cygwin はハングせず、単にコマンド ラインに戻るだけで、理由はわかりません。以下は、何が起こるかの写真です。
Running "shell:nodeStart" (shell) task
INFO: Configuration Override: CONFIG.MONGO.URL_CONNECTION : OK
INFO: Running in single node environment
INFO: MongoDB is ready
info: socket.io started
それが起こらなかったことに気付き、入力しps
てどのプロセスが実行されているかを確認したところ、nodejs
プロセスがまだ実行されていることがわかりました。強制終了しようとすると、PID で見つかったプロセスがないと表示されます。
$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
4112 2768 4112 1208 pty0 1000 13:28:47 /usr/bin/ps
5336 1 5336 5336 ? 1000 13:10:29 /usr/bin/mintty
2768 5336 2768 3400 pty0 1000 13:10:29 /usr/bin/bash
7688 1 7708 7788 pty0 1000 13:13:54 /cygdrive/c/Program Files/nodejs/node
これは、私がそれを殺そうとするとどうなるかです:
$ kill -9 7688
-bash: kill: (7688) - No such process
誰かがこのプロセスを強制終了して、コンピューターを常に再起動しなくても webapp を再起動できるようにする方法を知っていれば、それは素晴らしいことです! ありがとう!
編集:少なくとも自分で解決策を見つけました。cygwin で kill が機能しない理由はわかりませんが、タスク マネージャーでプロセスを終了すると、grunt dev が正常に機能します。ありがとう!