【问题标题】:Ifconfig goes to uninterruptible sleep state and same process is invoked multiple time with different pid [closed]Ifconfig进入不间断睡眠状态,并且使用不同的pid多次调用同一进程[关闭]
【发布时间】:2019-08-28 17:10:58
【问题描述】:

我正在使用 system() 命令运行我的脚本,该脚本又调用“ifconfig eth0 | grep \”RUNNING\“”。似乎 ifconfig 没有响应并且我的系统调用阻止了它,这将我的脚本移动到可中断的睡眠状态。为什么我看到我的脚本在进入 S 状态后被多次调用?

7514 sh z
7515 ifonfig D
7576 sh           S
7577 ifconfig_script.sh S
7705 ifconfig_script.sh S
7706 ifconfig D
7707 grep S
7720 sh S
7721 ifconfig_script.sh S
7795 ifconfig_script.sh S
7796 ifconfig D
7797 grep S
7820 sh S
7821 ifconfig_script.sh S
7895 ifconfig_script.sh S
7896 ifconfig D
7897 grep S
........
........
........
........

谁能帮助我,为什么我看到用不同的 pid 多次调用同一个进程?

【问题讨论】:

  • 您是否终止了所有卡住的脚本,还是它们仍然卡住?
  • 顺便说一句,ifconfig 在 linux 上已经被弃用了一段时间。我认为它最后一次更新是在 15 年前。
  • @tadman No.. 它导致 memleak 并且我的系统重新启动。

标签: c linux linux-kernel


【解决方案1】:

您是否多次运行脚本?

在 shell 中运行ifconfig eth0 的结果是什么?

它看起来像一个僵尸进程

7514 sh z

最小的pid表示可能第一次调用ifconfig被阻塞了,

僵尸进程阻塞了后面的调用

【讨论】:

  • 我只运行过一次。我从 ifconfig etho 中一无所获,似乎 ifconfig 没有响应僵尸会阻止其他调用吗?
  • 如果您只运行一次脚本,那么在此处发布您的简化脚本可能会帮助我们更清楚地了解情况
  • 内核有没有办法多次启动休眠进程?
猜你喜欢
  • 2012-08-31
  • 2013-11-01
  • 2021-10-01
  • 1970-01-01
  • 2012-06-21
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多