我认为我遇到了与随机网络问题相关的问题,它影响并导致我的 php 进程陷入 D 状态。
这会打印一个内核错误:
[Tue May 17 11:24:55 2022] INFO: task php-fpm:3017789 blocked for more than 120 seconds.
[Tue May 17 11:24:55 2022] Not tainted 4.15.0-176-generic #185-Ubuntu
[Tue May 17 11:24:55 2022] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
这是否被认为是有效的内核恐慌内核崩溃后自动重启
如果这不起作用,我正在考虑创建一个 while 循环检查 dmesg 日志中的错误消息,然后如果找到则重新启动,但我认为可能有一种更安全、更优雅的方法来实现此目的
答案1
我找到了一个非常好的答案杰思罗·卡尔的博客
你只需要添加到/etc/sysctl.conf:
# Panic if a hung task was found
kernel.hung_task_panic=1
# Reboot 5 seconds after panic
kernel.panic=5
只是分享,因为谁知道该博客会存在多久,但如果这个社区不允许这样做,我很抱歉。