2

私はSinatraアプリケーションを開発しており、「rackup」を使用してWebrickを起動しています。それを止めるにはどうすればいいですか?Ctrl + Zを使用していますが、停止しているようです。ただし、もう一度起動しようとすると、ポートはすでにバインドされていると表示されます。

多くのポートで試してみましたが、起動するたびに停止し、再起動すると使用中であると表示されました。

どうすれば解決できますか?

4

2 に答える 2

2

Ctrl+Zプロセスを終了/強制終了するのではなく、プロセスを「一時停止」します。

本当にそれを殺すには、プロセステーブルで見つけて実行しますkill -9 [PID]

お気に入り:

ps auxwww | grep ruby
slivu  16244   0.0  0.5  2551140  61220 s020  R+    1:18AM   0:10.70 ruby app.rb

2 番目の列 (16244) は PID です。

INTもう 1 つの方法は、Ruby でシグナルを「キャッチ」し、アプリを明示的に終了することです。

あなたのアプリで:

Signal.trap 'INT' do
    Process.kill 9, Process.pid
end
于 2012-10-28T12:07:51.043 に答える
2

slivu の返信を拡張すると、

CTRL+Cまだ同じ端末にいる場合は、プロセスを強制終了するために使用します。

バックグラウンドで起動している場合、または別の端末から強制終了したい場合は、

ps aux | grep [r]ackup | awk '{print $2}' | xargs sudo kill -9
于 2012-10-28T13:04:18.357 に答える