Ubuntu 13.04 почти новая установка: "ps aux" застревает на анакроне
Я только что закончил установку 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 блокирует вызов read() при попытке извлечь командную строку для процесса anacron:
[...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. Я только что скачал.iso со страницы загрузок Ubuntu прошлой ночью, установил его через USB и установил все последние обновления. После установки я добавил пару других приложений (nvidia-current, VirtualBox, Audacity, Audacious, Google Chrome и VLC), но до сих пор не замечал этой проблемы с ps.
Аппаратные характеристики: Intel i7-3930K @ 3,20 ГГц, 16 ГБ ОЗУ, 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 зависания", но отмена этого изменения и перезагрузка сделали.