Каков наилучший способ остановить процесс Unicorn Server? - PullRequest
32 голосов
/ 20 января 2011

Каков наилучший способ остановить запуск процесса Unicorn Server?Всякий раз, когда я пытаюсь остановить его с помощью kill -p 90234, это не работает.Скорее всего, я что-то не так делаю.

Спасибо.

Ответы [ 10 ]

75 голосов
/ 26 апреля 2011

Загляните на страницу СИГНАЛЫ Единорога . Если мастер ведет себя правильно, и вы просто хотите отключить его, вы должны отправить сигнал ВЫХОДА:

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

Это грациозно останавливает всех работников, позволяя им выполнять любые запросы, которые находятся в процессе обслуживания.

41 голосов
/ 26 сентября 2011

Я использую это:

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

Я просто оглянулся на это два месяца спустя. Это безумие, и не используйте его, если у вас более одного мастера-единорога, и вы хотите убить только одного из них.

19 голосов
/ 01 февраля 2014

Интересно, что никто не рассматривал pid-файл, который создает единорог?Мой обычный конфиг помещает его в ./tmp/unicorn.pid, так что, возможно, самый безопасный способ -

kill -QUIT `cat tmp/unicorn.pid`

, и файл pid затем удаляется надлежащим образом в процессе удаления.Я всегда помещаю файл pid в одно и то же относительное место, поэтому думаю, что для удобства я могу использовать псевдоним, хотя, когда я разрабатываю, я обычно не демонизирую единорога.

11 голосов
/ 20 января 2011

Я бы, наверное, пошел с:

sudo pkill unicorn_rails
4 голосов
/ 20 января 2011
ps aux | grep unicorn
#=> root   4393  2.0  0.9  65448 20764 ?  S  20:06   0:35 unicorn_rails m
kill 4393
3 голосов
/ 16 сентября 2014

В конечном счете, ключом является следующая строка, которая нацелена на основной процесс единорога и убивает его

kill $(ps aux | grep '[u]nicorn_rails master' | awk '{print $2}')
2 голосов
/ 20 января 2011

Обычно я ленивый и просто убиваю по имени:

$ killall processname
1 голос
/ 20 января 2011

Простые вещи - в терминале наберите «ps» и посмотрите на Master Unicorn Process.Скопируйте его PID и введите «kill −9 90234» (где 90234 - это PID основного процесса единорога).После этого рабочий процесс должен исчезнуть сам.

0 голосов
/ 18 сентября 2016

Чтобы выйти из определенного сервера Unicorn, вы можете использовать что-то вроде следующего:

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

Таким образом, вы можете выборочно убить любой процесс, и вам не нужно использовать оценку / расширение оболочки, которая может быть недоступна.

0 голосов
/ 29 мая 2012

для тех, кто использует chef и видит, что ничего из вышеперечисленного не работает (потому что процессы запускаются, как только вы их убиваете):

sudo sv stop APP_NAME

sv - контрольдля runit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...