2011-01-20 5 views
29

Unicorn Serverプロセスの実行を停止する最善の方法は何ですか? kill -p 90234を使用して停止しようとするたびに動作しません。それは私が間違っている可能性が高いです。Unicorn Serverプロセスの実行を停止する最善の方法は何ですか?

ありがとうございました。

+1

プログラミングしていません。おそらくServerFault.com。 – Dogbert

+2

ワッフルを投げますか? – bmargulies

+0

githubには、kill呼び出しをラップするいくつかの良いレーキタスクがあります - https://gist.github。com/1246503/7fb148968b0195a55b488ae1572c1ded84e15795 – house9

答えて

0

シンプルなもの - 「ps」という端末タイプで、Master Unicorn Processを探しています。そのPIDをコピーして、 "kill -9 90234"と入力します(90234はマスターユニコーンプロセスのPIDです)。その後、そのワーカープロセスは消滅するはずです。

+14

'kill -9'は実行中のプロセスを強制終了する安全な方法ではありません。私はロブキャメロンが下記の答えを提案する。 – Gewthen

+0

投票されました。 -9で強制終了すると、Gewthenが説明したように、問題が発生する可能性があります。 kill -QUITははるかに安全です(Rob Cameronの答えによると)。 – XtraSimplicity

2

通常、私は怠け者だと私は名前だけで殺す:

$ killall processname 
8

私はおそらくとなるだろう:

sudo pkill unicorn_rails 
+2

私はこれが最良の答えだと信じていますが、私はsudo pkill unicornを実行しましたが – jlstr

+0

複数のユニコーンサーバが稼動していて、特定のサーバを終了したい場合には、これはいいことではありません... – Nick

4
ps aux | grep unicorn 
#=> root 4393 2.0 0.9 65448 20764 ? S 20:06 0:35 unicorn_rails m 
kill 4393 
74

Unicorn SIGNALS pageを見てください。彼らがサービス提供の真ん中にいるすべての要求を完了させる、

kill -QUIT 1234  # where 1234 is the real process id, of course 

優雅にすべての労働者を停止します。マスタが正しく動作していると、あなたはそれをオフにしたい場合は、QUITシグナルを送る必要があります。

+0

'\' kill -QUIT#{Process.pid} \ '' –

39

私はこれを使用します。

ps aux | grep 'unicorn' | awk '{print $2}' | xargs sudo kill -9 

私はちょうどこの後2ヶ月で振り返りました。これは狂気です。あなたが複数のユニコーンマスターを持っていて、そのうちの1つだけを殺したい場合は、これを使用しないでください。シェフを使用して(プロセスはできるだけ早くあなたがそれらを殺すとして再生成されるため)上記の作品のどれを見ていない人のため

+1

これは孤立した孤立した労働者が百万人いる場合に効果的です – EnabrenTane

0

sudo sv stop APP_NAME

svrunitのための制御です。

18

ユニコーンが作成するpidファイルは誰も考慮していないということに興味がありますか?私のいつものconfigが./tmp/unicorn.pidに入れますので、おそらく最も安全な方法は、

kill -QUIT `cat tmp/unicorn.pid` 

で、pidファイルは、その後、適切に逸脱し、プロセスによって削除されます。私はいつもpidファイルを同じ相対場所に置いていますので、便宜上別名を付けることができたと思いますが、私が開発しているときには通常ユニコンをデモンストレーションしません。

+0

kill -QUIT 'cat shared/pids/unicorn.pid'はPIDファイルの別の一般的な場所です –

+0

場所を設定できます/config/unicorn/development.rbの 'pid" tmp/pids/unicorn.pid "を使って、開発中のあなたのpidファイルの内容を確認してください。次に '' 'kill -QUIT' cat tmp/pids/unicorn.pid''''を実行します。 – pdobb

3

最終的には、キーがマスターユニコーンのプロセスを対象とし、次のようなものを使用することができ、特定のユニコーンのサーバーを終了するには

kill $(ps aux | grep '[u]nicorn_rails master' | awk '{print $2}') 
0

それを殺す次の行です:

pkill -QUIT --pidfile /path/to/app/shared/tmp/pids/unicorn.pid 

このプロセスを選択的に終了させることができ、利用できない可能性があるシェル評価/拡張を使用する必要はありません。

関連する問題