ele*_*nts 5 ruby ruby-on-rails nginx unicorn
所有的独角兽工人都在默默地死去,没有任何原因的迹象,而且我找不到任何外部过程杀死他们的证据。我是刚开始诊断这类问题的人,经过数小时的研究,实验并试图弄清楚这一点,我已经走到了尽头。
背景信息-它是一个Rails 4.1应用程序,Ruby 2.0,在Ubuntu 14.04服务器上运行nginx和unicorn。
独角兽
working_directory "/home/deployer/apps/ourapp/current"
pid "/home/deployer/apps/ourapp/current/tmp/pids/unicorn.pid"
stderr_path "/home/deployer/apps/ourapp/current/log/unicorn.log"
stdout_path "/home/deployer/apps/ourapp/current/log/unicorn.log"
listen "/tmp/unicorn.ourapp.sock"
worker_processes 2
timeout 30
Run Code Online (Sandbox Code Playgroud)
摘自unicorn.log(死前和重启后的最后几行)
I, [2016-08-28T19:54:01.685757 #19559] INFO -- : worker=1 ready
I, [2016-08-28T19:54:01.817464 #19556] INFO -- : worker=0 ready
I, [2016-08-29T09:19:14.818267 #30343] INFO -- : unlinking existing socket=/tmp/unicorn.ourapp.sock
I, [2016-08-29T09:19:14.818639 #30343] INFO -- : listening on addr=/tmp/unicorn.ourapp.sock fd=10
I, [2016-08-29T09:19:14.818807 #30343] INFO -- : worker=0 spawning...
I, [2016-08-29T09:19:14.824358 #30343] INFO -- : worker=1 spawning...
Run Code Online (Sandbox Code Playgroud)
一些相关信息:
/var/log被杀死进程的证据,只能找到几天前被杀死的一个不相关进程。 Completed 200 OK in 264ms所以它似乎并没有被请求超时。问题:
我不知道从这里去哪里,所以任何建议将不胜感激。
更新
正如建议的那样,我使用strace来发现独角兽被以前的开发人员添加的旧crontab(我应该早点检查过)杀死了,该crontab打算每晚重新启动服务器。停止命令有效,但是启动命令失败。
我仍然不知道为什么我无法在日志搜索中找到任何内容,但是在将strace附加到主要的独角兽进程(使用诸如strace -o /tmp/strace.out -s 2000 -fp <unicorn_process_id>)之后,strace日志以clear结尾 +++ killed by SIGKILL +++。我再次搜索了日志,这使我进入了crontab。
根本原因可能是非常具体的,以我的情况,但我真的很高兴,我知道现在strace的。
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |