11

アプリケーションを開始するには、Foremanを使用します。Procfileからのフォアマン開始プロセス

web: bundle exec rails server thin -p $PORT
worker: bundle exec rake environment resque:work QUEUE=send_mail
api: bundle exec rails server thin -p $PORT

フォアマンを実行しているコンソールでcontrol+Cを押すと、フォアマンは終了しますが、実行されたプロセスは強制終了されません。フォアマンが殺されたときにフォアマンが実行したプロセスを殺すことは可能ですか?

4

3 に答える 3

10

以下の例では、使用されるポートが 4567 であると仮定して、次のようにします。

lsof -i :4567

これにより、プロセスの pid、たとえば 34564 が得られます。

kill -9 34564

Windows を使用している場合は、コマンドを取得するためにcygwinをインストールします。lsofkill

于 2012-02-03T03:59:07.237 に答える
1

開いている接続がある限り、Thin は終了しません。Faye は、ロング ポーリングまたは WebSocket (長期接続) を使用します。したがって、最終的な結果として、Thin は Faye 接続が閉じられるのを待っています。

Thin によってインストールされたシグナル ハンドラーを無効にしてみてください。問題はありません。

于 2012-02-02T11:10:13.357 に答える
0

プロセスIDを見つけてプロセスを強制終了する小さなワンライナーを組み立てました

kill -9 `lsof -P -i :5000 | sed -n 's/python *\([0-9]*\).*\:5000.*/\1/p'`

この場合、私はポート5000でPythonプロセスを実行していますが、他のポートで他のタイプのプロセスを実行している可能性があるため、それに応じてこのワンライナーをカスタマイズする必要があります。

于 2012-12-20T17:17:06.697 に答える