1

私は崇高なテキスト 2 のビルド システムを使用して、mongodb + node.js サーバーの開発を支援しています。これは、ターミナルに何度も戻ったりせずにコードをテストできるため、非常に便利です。欠点は、バックグラウンドで実行されている複数のノード プロセスをうっかり放置するのが非常に簡単であることです。別のモジュールをテストするために必要なポートをそれらの 1 つが使用しているときにクラッシュが発生することがあります。

そのディレクトリから新しいプロセスを開始するたびに、特定のディレクトリ内で実行されているすべてのノード プロセスを停止する方法はありますか? bash スクリプトなどですか?

4

1 に答える 1

0

次のようなことを試してください:

ps auxwwwe | egrep " [n]ode .+ PWD=$PWD" | awk '{ print $2 }' | xargs kill

これにより、次のことが行われます。

  1. psプロセスへの完全なパスを取得するために使用します。
  2. 現在の作業ディレクトリ内のコマンドで開始されたすべてのプロセスを検索しますnode(これは、絶対パス、別の環境変数などで変更できます)。
  3. 2 番目の列を検索します: pid (使用するawknawk、システムによって異なります)。
  4. kill各 pid で実行されます。
于 2013-02-04T19:42:53.230 に答える