Ubuntu 13.04 近乎全新安装:“ps aux”卡在 anacron 上

Ubuntu 13.04 近乎全新安装:“ps aux”卡在 anacron 上

我刚刚在一台全新的电脑上安装了 Ubuntu 13.04,并注意到在终端中执行“ps aux”会导致它在显示进程列表时中途挂起:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  27076  2872 ?        Ss   15:20   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    15:20   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    15:20   0:00 [ksoftirqd/0]
[...trimmed...]
root      1207  0.0  0.0  20972   996 tty6     Ss+  15:20   0:00 /sbin/getty -8 38400 tty6
root      1219  0.0  0.0  70428  2812 ?        Ss   15:20   0:00 /usr/sbin/cups-browsed

...它就停在那里,没有返回到命令提示符。按 Ctrl-C 尝试中止列表不会终止 ps,只会在终端中显示 ^C。

出于好奇,我对其运行了 strace,发现 ps 在尝试获取 anacron 进程的命令行时阻塞了 read() 调用:

[...trimmed...]
write(1, "root      1207  0.0  0.0  20972 "..., 91root      1207  0.0  0.0  20972   996 tty6     Ss+  15:20   0:00 /sbin/getty -8 38400 tty6
) = 91
stat("/proc/1219", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/1219/stat", O_RDONLY)       = 6
read(6, "1219 (cups-browsed) S 1 1219 121"..., 1023) = 193
close(6)                                = 0
open("/proc/1219/status", O_RDONLY)     = 6
read(6, "Name:\tcups-browsed\nState:\tS (sle"..., 1023) = 777
close(6)                                = 0
open("/proc/1219/cmdline", O_RDONLY)    = 6
read(6, "/usr/sbin/cups-browsed\0", 131072) = 23
read(6, "", 131049)                     = 0
close(6)                                = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=331, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=331, ...}) = 0
write(1, "root      1219  0.0  0.0  70428 "..., 88root      1219  0.0  0.0  70428  2812 ?        Ss   15:20   0:00 /usr/sbin/cups-browsed
) = 88
stat("/proc/1239", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/1239/stat", O_RDONLY)       = 6
read(6, "1239 (anacron) D 1 1239 1239 0 -"..., 1023) = 189
close(6)                                = 0
open("/proc/1239/status", O_RDONLY)     = 6
read(6, "Name:\tanacron\nState:\tD (disk sle"..., 1023) = 772
close(6)                                = 0
open("/proc/1239/cmdline", O_RDONLY)    = 6
read(6, 

顺便说一句,尝试这样做也会导致挂起:

$ cat /proc/1239/cmdline 

我发现了其他人发布的其他一些帖子也提到了这种特殊现象,但似乎没有人找到解决方案。

https://unix.stackexchange.com/questions/10980/suggestions-needed-to-debug-why-ps-ef-gets-stuck https://serverfault.com/questions/257764/suggestions-needed-to-debug-why-ps-ef-gets-stuck

这是几乎全新安装的 Ubuntu 13.04。我昨晚刚从 Ubuntu 下载页面下载了 .iso,通过 USB 安装了它,并安装了所有最新更新。安装后,我添加了几个其他应用程序(nvidia-current、VirtualBox、Audacity、Audacious、Google Chrome 和 VLC),但直到现在才注意到 ps 的这个问题。

硬件规格:Intel i7-3930K @ 3.20GHz、16GB RAM、Nvidia GeForce GTX 680(304.88 驱动程序)。

以前有人遇到过这个问题吗? 有解决方法或内核补丁可用吗?

答案1

您使用 kerberos 吗?我在 /etc/krb5.conf 中进行此更改时遇到了同样的问题...

[libdefaults]
 default_realm = MYREALM
 dns_lookup_realm = true

...到...

[libdefaults]
 default_realm = MYREALM
 dns_lookup_realm = false

我遇到了 Firefox 挂起的问题,我认为这可能是解决方案。重新启动无法解决“ps 挂起”问题,但恢复该更改并重新启动可以解决。

相关内容