Подтвердить что ты не робот

Каков наилучший способ остановить процесс Unicorn Server?

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

Спасибо.

4b9b3361

Ответ 1

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

Ответ 2

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

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

Это изящно останавливает всех рабочих, позволяя им закончить любые запросы, которые они посещают.

Ответ 3

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

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

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

Ответ 4

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

kill -QUIT `cat tmp/unicorn.pid`

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

Ответ 5

Я бы, вероятно, пошел:

sudo pkill unicorn_rails

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

$ killall processname

Ответ 9

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

sudo sv stop APP_NAME

sv - это управление для runit.

Ответ 10

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

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

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