2

現在、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 が正常に機能します。ありがとう!

4

2 に答える 2

1

気にしないでください、私は解決策を考え出しました。cygwin でタスクを強制終了しようとしても機能しない理由はわかりませんが、タスク マネージャーを開いてプロセスを手動で削除すると、問題なく実行されます。ありがとう!

于 2013-10-08T23:01:02.683 に答える