Не может убить процесс сна

Я, кажется, не в состоянии убить -9 процесс, который находится в состоянии прерывистого сна (ы):

[root@jupiter ~]# ps -elf | grep yum
4 S root     16790     1  0  75   0 - 73779 -      Jan15 ?        00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip
[root@jupiter ~]# kill -9 16790
[root@jupiter ~]# ps -elf | grep yum
4 S root     16790     1  0  75   0 - 73779 -      Jan15 ?        00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip

Как это возможно? Есть ли способ убить процесс без перезагрузки?

награда: меня больше интересует объяснение того, как это может произойти.

обновление: это вывод команды lsof:

[root@jupiter ~]# lsof -p 16790
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
yum     16790 root  cwd    DIR         1166,56842     4096  16886249 /home/del
yum     16790 root  rtd    DIR              253,0     4096         2 /
yum     16790 root  txt    REG              253,0     8304 336177337 /usr/bin/python
yum     16790 root  mem    REG              253,0   144776 346128569 /lib64/ld-2.5.so
yum     16790 root  mem    REG              253,0  1718232 346128573 /lib64/libc-2.5.so
yum     16790 root  mem    REG              253,0    23360 346128599 /lib64/libdl-2.5.so
yum     16790 root  mem    REG              253,0   145872 346128584 /lib64/libpthread-2.5.so
yum     16790 root  mem    REG              253,0   615136 346128602 /lib64/libm-2.5.so
yum     16790 root  mem    REG              253,0  1244792 336171087 /usr/lib64/libpython2.4.so.1.0
yum     16790 root  mem    REG              253,0    95464 346128744 /lib64/libselinux.so.1
yum     16790 root  mem    REG              253,0    53448 346128750 /lib64/librt-2.5.so
yum     16790 root  mem    REG              253,0    13960 336187564 /usr/lib64/libplds4.so
yum     16790 root  mem    REG              253,0    58400 346128752 /lib64/libgcc_s-4.1.2-20080825.so.1
yum     16790 root  mem    REG              253,0    78384 336173796 /usr/lib64/libelf-0.137.so
yum     16790 root  mem    REG              253,0  1139672 336187570 /usr/lib64/librpmdb-4.4.so
yum     16790 root  mem    REG              253,0   407792 336187568 /usr/lib64/librpmio-4.4.so
yum     16790 root  mem    REG              253,0   233144 336171420 /usr/lib64/libnspr4.so
yum     16790 root  mem    REG              253,0   375656 336187569 /usr/lib64/libsqlite3.so.0.8.6
yum     16790 root  mem    REG              253,0    17992 336187563 /usr/lib64/libplc4.so
yum     16790 root  mem    REG              253,0   386784 336187571 /usr/lib64/librpm-4.4.so
yum     16790 root  mem    REG              253,0   154776 336170228 /usr/lib64/librpmbuild-4.4.so
yum     16790 root  mem    REG              253,0   647608 346128759 /lib64/libglib-2.0.so.0.1200.3
yum     16790 root  mem    REG              253,0  1297136 336176959 /usr/lib64/libxml2.so.2.6.26
yum     16790 root  mem    REG              253,0    15584 346128756 /lib64/libtermcap.so.2.0.8
yum     16790 root  mem    REG              253,0  1234328 336187566 /usr/lib64/libnss3.so
yum     16790 root  mem    REG              253,0    18152 346128670 /lib64/libutil-2.5.so
yum     16790 root  mem    REG              253,0    34240 336177071 /usr/lib64/libpopt.so.0.0.0
yum     16790 root  mem    REG              253,0    67792 336187567 /usr/lib64/libbz2.so.1.0.3
yum     16790 root  mem    REG              253,0   143144 346128763 /lib64/libexpat.so.0.5.0
yum     16790 root  mem    REG              253,0 56434416 336184082 /usr/lib/locale/locale-archive
yum     16790 root  mem    REG              253,0   132656 336560181 /usr/lib64/python2.4/site-packages/rpm/_rpmmodule.so
yum     16790 root  mem    REG              253,0   154016 336187565 /usr/lib64/libnssutil3.so
yum     16790 root  mem    REG              253,0    96885 345638632 /usr/local/greenplum-loaders-3.3.0.0-build-3/lib/libz.so.1.2.3
yum     16790 root  mem    REG              253,0   247496 346128741 /lib64/libsepol.so.1
yum     16790 root  mem    REG              253,0   369144 336168883 /usr/lib64/libsoftokn3.so
yum     16790 root  mem    REG              253,0   312336 336178453 /usr/lib64/libfreebl3.so
yum     16790 root  mem    REG              253,0    20240 336530067 /usr/lib64/python2.4/lib-dynload/timemodule.so
yum     16790 root  mem    REG              253,0    25048 336529953 /usr/lib64/python2.4/lib-dynload/stropmodule.so
yum     16790 root  mem    REG              253,0    18984 336530051 /usr/lib64/python2.4/lib-dynload/cStringIO.so
yum     16790 root  mem    REG              253,0    21816 336529943 /usr/lib64/python2.4/lib-dynload/collectionsmodule.so
yum     16790 root  mem    REG              253,0    52152 336530044 /usr/lib64/python2.4/lib-dynload/_socketmodule.so
yum     16790 root  mem    REG              253,0    17200 336530045 /usr/lib64/python2.4/lib-dynload/_ssl.so
yum     16790 root  mem    REG              253,0   315080 346128749 /lib64/libssl.so.0.9.8e
yum     16790 root  mem    REG              253,0  1366912 346128748 /lib64/libcrypto.so.0.9.8e
yum     16790 root  mem    REG              253,0   190976 336187552 /usr/lib64/libgssapi_krb5.so.2.2
yum     16790 root  mem    REG              253,0   613928 336184245 /usr/lib64/libkrb5.so.3.3
yum     16790 root  mem    REG              253,0    11760 346128747 /lib64/libcom_err.so.2.1
yum     16790 root  mem    REG              253,0   153720 336181723 /usr/lib64/libk5crypto.so.3.1
yum     16790 root  mem    REG              253,0    35984 336177832 /usr/lib64/libkrb5support.so.0.1
yum     16790 root  mem    REG              253,0     9472 346128681 /lib64/libkeyutils-1.2.so
yum     16790 root  mem    REG              253,0    92816 346128730 /lib64/libresolv-2.5.so
yum     16790 root  mem    REG              253,0    75384 336530050 /usr/lib64/python2.4/lib-dynload/cPickle.so
yum     16790 root  mem    REG              253,0    23736 336530064 /usr/lib64/python2.4/lib-dynload/structmodule.so
yum     16790 root  mem    REG              253,0    27336 336528958 /usr/lib64/python2.4/lib-dynload/operator.so
yum     16790 root  mem    REG              253,0    21520 336529958 /usr/lib64/python2.4/lib-dynload/zlibmodule.so
yum     16790 root  mem    REG              253,0    37944 336528952 /usr/lib64/python2.4/lib-dynload/itertoolsmodule.so
yum     16790 root  mem    REG              253,0    21528 336528929 /usr/lib64/python2.4/lib-dynload/_localemodule.so
yum     16790 root  mem    REG              253,0    21208 336529939 /usr/lib64/python2.4/lib-dynload/binascii.so
yum     16790 root  mem    REG              253,0    12080 336530062 /usr/lib64/python2.4/lib-dynload/shamodule.so
yum     16790 root  mem    REG              253,0    13168 336530058 /usr/lib64/python2.4/lib-dynload/md5module.so
yum     16790 root  mem    REG              253,0    18000 336529947 /usr/lib64/python2.4/lib-dynload/mathmodule.so
yum     16790 root  mem    REG              253,0    12504 336529934 /usr/lib64/python2.4/lib-dynload/_randommodule.so
yum     16790 root  mem    REG              253,0    15320 336528948 /usr/lib64/python2.4/lib-dynload/fcntlmodule.so
yum     16790 root  mem    REG              253,0    32816 336530049 /usr/lib64/python2.4/lib-dynload/bz2.so
yum     16790 root  mem    REG              253,0     8608 336529946 /usr/lib64/python2.4/lib-dynload/grpmodule.so
yum     16790 root  mem    REG              253,0    38696 336529819 /usr/lib64/python2.4/site-packages/cElementTree.so
yum     16790 root  mem    REG              253,0    42672 336530047 /usr/lib64/python2.4/lib-dynload/arraymodule.so
yum     16790 root  mem    REG              253,0     9368 336528915 /usr/lib64/python2.4/lib-dynload/_bisect.so
yum     16790 root  mem    REG              253,0    74992 336529944 /usr/lib64/python2.4/lib-dynload/datetime.so
yum     16790 root  mem    REG              253,0   372912 336560510 /usr/lib64/python2.4/site-packages/M2Crypto/__m2crypto.so
yum     16790 root  mem    REG              253,0     7120 336529937 /usr/lib64/python2.4/lib-dynload/_weakref.so
yum     16790 root  mem    REG              253,0    17496 336528966 /usr/lib64/python2.4/lib-dynload/selectmodule.so
yum     16790 root  mem    REG              253,0    46448 336528961 /usr/lib64/python2.4/lib-dynload/pyexpat.so
yum     16790 root  mem    REG              253,0    33896 336529820 /usr/lib64/python2.4/site-packages/_sqlite.so
yum     16790 root  mem    REG              253,0    41784 336530075 /usr/lib64/python2.4/site-packages/_sqlitecache.so
yum     16790 root  mem    REG              253,0    25104 336530066 /usr/lib64/python2.4/lib-dynload/termios.so
yum     16790 root  mem    REG              253,0     7280 336530065 /usr/lib64/python2.4/lib-dynload/syslog.so
yum     16790 root  mem    REG              253,0    25464 336265457 /usr/lib64/gconv/gconv-modules.cache
yum     16790 root  mem    REG              253,0    66544 336528926 /usr/lib64/python2.4/lib-dynload/_cursesmodule.so
yum     16790 root  mem    REG              253,0   380336 336181932 /usr/lib64/libncurses.so.5.5
yum     16790 root  mem    REG              253,0   405880 336529957 /usr/lib64/python2.4/lib-dynload/unicodedata.so
yum     16790 root  mem    REG              253,0    24576 236520047 /var/lib/rpm/__db.001
yum     16790 root  mem    REG              253,0    53880 346128424 /lib64/libnss_files-2.5.so
yum     16790 root  mem    REG              253,0    23736 346128408 /lib64/libnss_dns-2.5.so
yum     16790 root  mem    REG              253,0  1318912 236520050 /var/lib/rpm/__db.002
yum     16790 root  mem    REG              253,0   663552 236520051 /var/lib/rpm/__db.003
yum     16790 root  mem    REG              253,0   769074 336174965 /usr/share/locale/en_US/LC_MESSAGES/redhat-dist.mo
yum     16790 root    0u   CHR              136,8      0t0        10 /dev/pts/8 (deleted)
yum     16790 root    1u   CHR              136,8      0t0        10 /dev/pts/8 (deleted)
yum     16790 root    2u   CHR              136,8      0t0        10 /dev/pts/8 (deleted)
yum     16790 root    3u  unix 0xffff8104388d2e40      0t0   4675113 socket
yum     16790 root    4w   REG              253,0        0 236522326 /var/log/yum.log
yum     16790 root    5u   REG              253,0   605184 236520025 /var/cache/yum/WANdisco-dev/primary.xml.gz.sqlite
yum     16790 root    6u   REG              253,0    20480 236524002 /var/cache/yum/addons/primary.sqlite.old.tmp (deleted)
yum     16790 root    7u   REG              253,0 12578816 236519970 /var/cache/yum/base/primary.xml.gz.sqlite.old.tmp (deleted)
yum     16790 root    8u   REG              253,0 17972224 236523993 /var/cache/yum/epel/317109b44f1b0b40d910dc60c9080e62c7f4b16a-primary.sqlite.old.tmp (deleted)
yum     16790 root    9u   REG              253,0   967680 236524055 /var/cache/yum/extras/primary.sqlite.old.tmp (deleted)
yum     16790 root   10u   REG              253,0   459776 246415366 /var/cache/yum/pgdg92/primary.sqlite.old.tmp (deleted)
yum     16790 root   11u   REG              253,0  4927488 236524060 /var/cache/yum/updates/primary.sqlite.old.tmp (deleted)
yum     16790 root   12r   REG              253,0 65204224 236519434 /var/lib/rpm/Packages
yum     16790 root   13r   REG              253,0    45056 236519438 /var/lib/rpm/Name
yum     16790 root   14u  IPv4            4675317      0t0       TCP jupiter.example.com:33597->riksun.riken.go.jp:http (ESTABLISHED)
yum     16790 root   15u  IPv4            4675939      0t0       TCP jupiter.example.com:52708->freedom.itsc.cuhk.edu.hk:http (CLOSE_WAIT)
yum     16790 root   16r   REG              253,0 65204224 236519434 /var/lib/rpm/Packages
yum     16790 root   17r   REG              253,0    45056 236519438 /var/lib/rpm/Name
yum     16790 root   18r   REG              253,0    12288 236519440 /var/lib/rpm/Pubkeys
yum     16790 root   20r  FIFO                0,6      0t0   4676024 pipe
yum     16790 root   24w  FIFO                0,6      0t0   4676024 pipe
26
задан del
25.11.2022 18:27 Количество просмотров материала 3030
Распечатать страницу

5 ответов

процесс в состоянии S или D обычно находится в заблокированном системном вызове, таком как чтение или запись в файл или сеть, ожидая завершения вызываемой программы, или во время ожидания семафоров или других примитивов синхронизации. Он войдет в состояние сна во время ожидания.

вы не можете "разбудить его" - он будет продолжаться только тогда, когда данные / ресурс, которого он ждет, станут доступными. Это все нормально и ожидаемо, и только проблема при попытке убить она.

вы можете попробовать использовать strace -p pid, чтобы узнать, какой системный вызов в настоящее время происходит для процесса пид.

С Википедия:

бесперебойное состояние сна-это состояние сна, которое не немедленно подайте сигнал. Он проснется только в результате ожидания ресурс становится доступным или после истечения времени ожидания ожидание (если указано при переводе в спящий режим). Он главным образом использован прибором водители в ожидании дискового или сетевого ввода-вывода (ввода/вывода). Когда процесс спит uninterruptibly, сигналы, накопленные в течение сон будет замечен когда процесс возвратит от системного вызова или ловушка.

процесс блокирован системным вызовом является непрерывный сон, который, как говорит его название, действительно бесперебойное даже корень.

обычно процессы не могут блокировать SIGKILL. Но код ядра может и процессы выполняют код ядра при вызове системных вызовов, во время которого код ядра блокирует все сигналы. Таким образом, если системный вызов блокируется бесконечно, фактически не может быть никакого способа убить процесс. SIGKILL вступает в силу только после завершения системного вызова.

17
отвечен harrymc 2022-11-27 02:15

фон процесса сна

вы можете взглянуть на этот пост Unix & Linux.

  • /q/itunes-on-vista-is-painfully-slow-22522/"https://unix.stackexchange.com/a/5648/7453">https://unix.stackexchange.com/a/5648/7453.

    выдержка из этого поста

    kill -9 (SIGKILL) всегда работает, если у вас есть разрешение на убить процесс. В основном либо процесс должен быть запущен вами и не быть setuid или setgid, или вы должны быть root. Существует один исключение: даже root не может послать фатальный сигнал к PID 1 (инициализация процесс.)

    однако kill -9 не гарантирует немедленную работу. Весь сигнал, включая SIGKILL, поставляются асинхронно: ядро может принимать его время, чтобы доставить их. Обычно, поставлять сигнал принимает самое большее а немного микросекунд, как раз время оно принимает для цели для того чтобы получить время ломтик. Однако, если цель блокировал сигнал, сигнал будьте в очереди, пока цель не разблокирует его.

    обычно процессы не могут блокировать SIGKILL. Но код ядра может, и процессы выполняют код ядра при вызове системных вызовов. Код ядра блокирует все сигналы, когда прерывание системного вызова приведет к плохо сформированная структура данных где-то в ядре, или в более общем плане в некотором ядре инвариант нарушается. Так что, если (из-за ошибки или misdesign) блоки системных вызовов бесконечно, могут эффектно быть нет способа убить процесс. (Но процесс будет убит, если он когда-нибудь завершение системного вызова.)

    ...

    ...

    я настоятельно рекомендую прочитать остальную часть этого ответа!

    убийство процесса, заблокированного ресурсом (файлом или сетью)

    вот 2 вещи, чтобы попробовать.

    1. Удаление ням по .pid-файл

    присутствует ли файл блокировки yum? Что происходит при удалении файла блокировки? Я думаю, это могло бы позволить ему продолжить.

    rm /var/run/yum.pid
    

    2. Заставляя любого висеть CLOSE_WAIT TCP-соединения закрытая

    на CLOSE_WAIT описывается следующим образом:

    close_wait состояние Указывает, что сервер получил первый сигнал FIN от клиент и соединение находятся в процессе закрытия

    таким образом, это по существу означает, что его состояние, когда сокет ждет приложение для выполнения close ()

    сокет может находиться в состоянии CLOSE_WAIT неопределенно до тех пор, пока приложение закрыть его. Неисправные сценарии будет как filedescriptor утечки, сервер не выполняется close () на сокете, ведущем к накоплению close_wait сокетов

    Примечание: фрагмент сайт technet.

    есть 2 инструмента, которые вы можете попробовать использовать для достижения этот.

    эти инструменты работают путем имитации FIN-ACK-RST exchange, необходимый для полного закрытия TCP-подключения.

    Killcx работает, создавая поддельные SYN-пакет с поддельным SeqNum, подделка IP/порта удаленного клиента и отправка его на сервер. Она разветвляет дочерний процесс, который захватывает ответ сервера, извлеките 2 магических значения из пакета ACK и используйте их для отправки поддельный первый пакет. Соединение будет закрыто.

    Примечание: фрагмент Killcx сайт.

    С помощью резца

    разрезает определенное соединение между двумя заданными парами номеров ip / порта.

    # cutter ip-address-1 port-1 ip-address-2 port-2
    % cutter 200.1.2.3 22 10.10.0.45 32451
    

    Использование Killcx

    обрезает соединения с удаленным ip & порт.

    # killcx remote-ip-address:port
    % killcx 120.121.122.123:1234
    

    ресурсы

9
отвечен slm 2022-11-27 04:32

вы можете попробовать убить родительский процесс. Используйте ps для проверки:

ps xjf -C yum

затем kill -9 любые родительские процессы.

1
отвечен terdon 2022-11-27 06:49

возможно, стоит присоединить к процессу strace, чтобы увидеть, действительно ли он простаивает или застрял в операции ввода-вывода. Может предоставить дополнительные подсказки по этому вопросу, возможно.

strace-pPID

из того, что я прочитал нет никакого способа, чтобы убить этот процесс, кроме перезагрузки. Если процесс не потребляет сколько-нибудь заметного процессорного времени, это вряд ли создаст какое-либо негативное влияние на сервер.

1
отвечен Matthew Aldous 2022-11-27 09:06

может ли быть, что он ждет дочернего процесса? Я люблю ps faux потому что он скажет вам, есть ли дочерние процессы, и если, которые вам, возможно, придется убить.

1
отвечен Stefan Seidel 2022-11-27 11:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх