【问题标题】:How do I know a process is blocking the reboot command in linux?我如何知道一个进程正在阻止 Linux 中的重启命令?
【发布时间】:2017-03-30 16:39:30
【问题描述】:

我将我的包和模块添加到 openwrt 中,然后 reboot 根本不起作用!!。重启的唯一方法是使用reboot -fhard reset

我尝试从/etc/init.d 中删除我添加的所有startup scripts。我什至尝试删除/etc/modules.d/ 的内容。

我的/etc/rc.local 文件只有一行exit 0

我应该在哪里调试才能解决这个问题?所有这些包都在 x86 架构上运行。

我在基于imx6 的板上使用openwrt chaos calmer

【问题讨论】:

  • 一个可能的原因是媒体(或分区)上打开的文件阻止了分区被卸载。当您要求重新启动时,您是否安装了任何共享或可移动媒体?您的问题可能更适合 StackExchange 网站 Super UserUnix & Linux
  • @DavidC.Rankin 我没有安装任何东西我仍然看到这个问题

标签: linux openwrt reboot busybox imx6


【解决方案1】:

据我所知,reboot 使用的是 shutdown 命令。因此,在关闭时,Linux 会向其进程发送 SIGTERM。但是内核保护处于不间断状态的进程以防止数据丢失。这可能会导致停止重新启动。

因此,在您的情况下,某些进程(特定于 openwrt)可能处于不间断状态。您可以通过ps aux 命令列出具有未解释状态的进程(检查进程的STAT)。

也可以直接通过ps -eo 'stat,pid,args' | grep -E 'D'列出不间断状态

请查看Linux process states 了解有关 linux 中进程的更多详细信息。

【讨论】:

  • 我没有该状态的进程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多