阻止Unicorn Server进程运行的最佳方法是什么?

Cha*_*rdy 33 ruby-on-rails

阻止Unicorn Server进程运行的最佳方法是什么?每当我试图阻止它使用kill -p 90234它不起作用.这很可能是我做错了.

谢谢.

Rob*_*ron 77

看看Unicorn SIGNALS页面.如果主机运行正常并且您只想将其关闭,则应发送QUIT信号:

kill -QUIT 1234     # where 1234 is the real process id, of course
Run Code Online (Sandbox Code Playgroud)

这优雅地阻止了所有工人,让他们完成任何他们正在服务的请求.


cle*_*lem 41

我用这个:

ps aux | grep 'unicorn' | awk '{print $2}' | xargs sudo kill -9
Run Code Online (Sandbox Code Playgroud)

两个月后我才回头看看这个.这很疯狂,如果你有一个以上的独角兽大师并且你只想杀死其中一个,就不要使用它.


小智 19

有趣的是没有人考虑过独角兽创造的pid文件?我通常的配置将它放在./tmp/unicorn.pid中,所以也许最安全的方法是

kill -QUIT `cat tmp/unicorn.pid`
Run Code Online (Sandbox Code Playgroud)

然后,离开的进程正确删除了pid文件.我总是将pid文件放在相同的相对位置,所以我想我可以为了方便而使用别名,虽然在我开发时我通常不会对unicorn进行守护.


mik*_*son 11

我可能会选择:

sudo pkill unicorn_rails
Run Code Online (Sandbox Code Playgroud)

  • 我相信这是最好的答案,但我做了sudo pkill独角兽 (2认同)

小智 0

事情很简单 - 在终端中输入“ps”并查看 Master Unicorn Process。复制它的 PID,然后输入“kill \xe2\x88\x929 90234”(其中 90234 是主 Unicorn 进程的 PID)。之后工作进程应该会自行消失。

\n

  • “kill -9”绝不是终止正在运行的进程的安全方法。我建议罗布·卡梅伦在下面回答。 (15认同)