前兩天交洗,nginx進(jìn)程莫名奇妙掛了送粱,查看nginx的錯(cuò)誤日志栓袖,看到一些錯(cuò)誤
2017/09/21 22:05:17 [alert] 28916#0: worker process 28937 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 24281 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 24302 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 24283 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 24299 exited on signal 7
2017/09/21 22:05:17 [alert] 28916#0: worker process 24301 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 24305 exited on signal 11
2017/09/21 22:05:17 [alert] 28916#0: worker process 28930 exited on signal 11
其中讲逛,signal 11 為段錯(cuò)誤SIGSEGV亏吝,signal 7 為SIGBUS錯(cuò)誤
需要開啟core dump來(lái)定位錯(cuò)誤,
但是ulimit -S -c unlimited 這樣的設(shè)置盏混,要重啟應(yīng)用才能生效蔚鸥,
想要不重啟應(yīng)用來(lái)開啟core dump。
具體設(shè)置方法如下:
- 找到進(jìn)程號(hào)许赃,假設(shè)進(jìn)程號(hào)是42301
- 向/proc/42301/limits 輸入設(shè)置值
$> ps -ef | grep nginx
$> sudo bash -c "echo -n 'Max core file size=unlimited:unlimited' > /proc/42301/limits"