Não pareço capaz de matar -9 um processo que está em um estado de suspensão (S) interrompível:
[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
Como isso é possível? Existe alguma maneira de matar o processo sem reiniciar?
BOUNTY: Estou realmente mais interessado em uma explicação de como isso é possível.
UPDATE: Esta é a saída de lsof:
[root @ jupiter ~] # lsof -p 16790 COMANDO PID USUÁRIO FD TIPO DISPOSITIVO TAMANHO / DESLIGADO NOME DO NÓ yum 16790 cwd raiz DIR 1166,56842 4096 16886249 / home / del yum 16790 root rtd DIR 253,0 4096 2 / yum 16790 txt raiz REG 253,0 8304 336177337 / usr / bin / python yum 16790 REG raiz mem 253,0 144776 346128569 /lib64/ld-2.5.so yum 16790 REG raiz mem 253,0 1718232 346128573 /lib64/libc-2.5.so yum 16790 mem REG raiz 253,0 23360 346128599 /lib64/libdl-2.5.so yum 16790 mem REG raiz 253,0 145872 346128584 /lib64/libpthread-2.5.so yum 16790 REG raiz mem 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 mem REG raiz 253,0 95464 346128744 /lib64/libselinux.so.1 yum 16790 REG raiz mem 253,0 53448 346128750 /lib64/librt-2.5.so yum 16790 mem REG raiz 253,0 13960 336187564 /usr/lib64/libplds4.so yum 16790 REG raiz mem 253,0 58400 346128752 /lib64/libgcc_s-4.1.2-20080825.so.1 yum 16790 mem REG raiz 253,0 78384 336173796 /usr/lib64/libelf-0.137.so yum 16790 REG raiz mem 253,0 1139672 336187570 /usr/lib64/librpmdb-4.4.so yum 16790 REG raiz mem 253,0 407792 336187568 /usr/lib64/librpmio-4.4.so yum 16790 mem REG raiz 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 mem REG raiz 253,0 17992 336187563 /usr/lib64/libplc4.so yum 16790 mem REG raiz 253,0 386784 336187571 /usr/lib64/librpm-4.4.so yum 16790 REG raiz mem 253,0 154776 336170228 /usr/lib64/librpmbuild-4.4.so yum 16790 mem REG raiz 253,0 647608 346128759 /lib64/libglib-2.0.so.0.1200.3 yum 16790 mem REG raiz 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 mem REG raiz 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 mem REG raiz 253,0 67792 336187567 /usr/lib64/libbz2.so.1.0.3 yum 16790 REG raiz mem 253,0 143144 346128763 /lib64/libexpat.so.0.5.0 yum 16790 REG raiz mem 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 mem REG raiz 253,0 247496 346128741 /lib64/libsepol.so.1 yum 16790 mem REG raiz 253,0 369144 336168883 /usr/lib64/libsoftokn3.so yum 16790 root mem REG 253,0 312336 336178453 /usr/lib64/libfreebl3.so yum 16790 REG raiz mem 253,0 20240 336530067 /usr/lib64/python2.4/lib-dynload/timemodule.so yum 16790 REG raiz mem 253,0 25048 336529953 /usr/lib64/python2.4/lib-dynload/stropmodule.so yum 16790 REG raiz mem 253,0 18984 336530051 /usr/lib64/python2.4/lib-dynload/cStringIO.so yum 16790 REG raiz mem 253,0 21816 336529943 /usr/lib64/python2.4/lib-dynload/collectionsmodule.so yum 16790 REG raiz mem 253,0 52152 336530044 /usr/lib64/python2.4/lib-dynload/_socketmodule.so yum 16790 REG raiz mem 253,0 17200 336530045 /usr/lib64/python2.4/lib-dynload/_ssl.so yum 16790 REG raiz mem 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 mem REG raiz 253,0 613928 336184245 /usr/lib64/libkrb5.so.3.3 yum 16790 mem REG raiz 253,0 11760 346128747 /lib64/libcom_err.so.2.1 yum 16790 mem REG raiz 253,0 153720 336181723 /usr/lib64/libk5crypto.so.3.1 yum 16790 REG raiz mem 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 REG raiz mem 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 REG raiz mem 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 REG raiz mem 253,0 37944 336528952 /usr/lib64/python2.4/lib-dynload/itertoolsmodule.so yum 16790 REG raiz mem 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 REG raiz mem 253,0 12080 336530062 /usr/lib64/python2.4/lib-dynload/shamodule.so yum 16790 REG raiz mem 253,0 13168 336530058 /usr/lib64/python2.4/lib-dynload/md5module.so yum 16790 REG raiz mem 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 REG raiz mem 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 REG raiz mem 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 REG raiz mem 253,0 7120 336529937 /usr/lib64/python2.4/lib-dynload/_weakref.so yum 16790 REG raiz mem 253,0 17496 336528966 /usr/lib64/python2.4/lib-dynload/selectmodule.so yum 16790 REG raiz mem 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 REG raiz mem 253,0 41784 336530075 /usr/lib64/python2.4/site-packages/_sqlitecache.so yum 16790 REG raiz mem 253,0 25104 336530066 /usr/lib64/python2.4/lib-dynload/termios.so yum 16790 REG raiz mem 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 REG raiz mem 253,0 66544 336528926 /usr/lib64/python2.4/lib-dynload/_cursesmodule.so yum 16790 REG raiz mem 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 mem REG raiz 253,0 53880 346128424 /lib64/libnss_files-2.5.so yum 16790 mem REG raiz 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 raiz 0u CHR 136,8 0t0 10 / dev / pts / 8 (excluído) yum 16790 raiz 1u CHR 136,8 0t0 10 / dev / pts / 8 (excluído) yum 16790 root 2u CHR 136,8 0t0 10 / dev / pts / 8 (excluído) Soquete yum 16790 root 3u unix 0xffff8104388d2e40 0t0 4675113 yum 16790 raiz 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 raiz 6u REG 253,0 20480 236524002 /var/cache/yum/addons/primary.sqlite.old.tmp (excluído) yum 16790 root 7u REG 253,0 12578816 236519970 /var/cache/yum/base/primary.xml.gz.sqlite.old.tmp (excluído) yum 16790 root 8u REG 253,0 17972224 236523993 /var/cache/yum/epel/317109b44f1b0b40d910dc60c9080e62c7f4b16a-primary.sqlite.old.tmp (excluído) yum 16790 raiz 9u REG 253,0 967680 236524055 /var/cache/yum/extras/primary.sqlite.old.tmp (excluído) yum 16790 raiz 10u REG 253,0 459776 246415366 /var/cache/yum/pgdg92/primary.sqlite.old.tmp (excluído) yum 16790 raiz 11u REG 253,0 4927488 236524060 /var/cache/yum/updates/primary.sqlite.old.tmp (excluído) yum 16790 raiz 12r REG 253,0 65204224 236519434 / var / lib / rpm / Pacotes yum 16790 raiz 13r REG 253,0 45056 236519438 / var / lib / rpm / nome yum 16790 raiz 14u IPv4 4675317 0t0 TCP jupiter.example.com:33597->riksun.riken.go.jp:http (ESTABELECIDO) yum 16790 raiz 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 / Pacotes yum 16790 raiz 17r REG 253,0 45056 236519438 / var / lib / rpm / nome yum 16790 raiz 18r REG 253,0 12288 236519440 / var / lib / rpm / Pubkeys yum 16790 raiz 20r FIFO 0,6 0t0 4676024 tubo yum 16790 raiz 24w FIFO 0,6 0t0 4676024 tubo
Respostas:
Um processo no estado S ou D geralmente ocorre em uma chamada do sistema de bloqueio, como ler ou gravar em um arquivo ou na rede, aguardar a conclusão de um programa chamado ou aguardar semáforos ou outras primitivas de sincronização. Ele entrará no estado de suspensão enquanto espera.
Você não pode "acordá-lo" - ele só continuará quando os dados / recursos pelos quais estiver aguardando estiverem disponíveis. Tudo isso é normal e esperado, e apenas um problema ao tentar matá-lo.
Você pode tentar usar
strace -p pid
para descobrir qual chamada do sistema está acontecendo no momento para o processo pid.Da wikipedia :
Um processo bloqueado em uma chamada do sistema está em suspensão ininterrupta, que, como o próprio nome diz, é realmente ininterrupta mesmo pela raiz.
Normalmente, os processos não podem bloquear o SIGKILL. Mas o código do kernel pode e os processos executam o código do kernel quando chamam chamadas do sistema, durante as quais o código do kernel bloqueia todos os sinais. Portanto, se uma chamada do sistema for bloqueada indefinidamente, pode não haver maneira eficaz de interromper o processo. O SIGKILL só entrará em vigor quando o processo concluir a chamada do sistema.
fonte
Antecedentes em um processo adormecido
Você pode dar uma olhada nesta postagem sobre Unix e Linux.
Especificamente, esta resposta, /unix//a/5648/7453 .
Trecho desse post
Eu sugiro ler o resto dessa resposta!
Matar um processo bloqueado por um recurso (arquivo ou rede)
Aqui estão duas coisas para tentar.
1. Removendo o arquivo .pid do yum
Existe um arquivo de bloqueio do yum? O que acontece quando você remove esse arquivo de bloqueio? Eu acho que isso pode permitir que continue.
2. Forçar o
CLOSE_WAIT
fechamento de qualquer conexão TCP suspensaA
CLOSE_WAIT
é descrito da seguinte forma:NOTA: Trecho do site da technet .
Existem 2 ferramentas que você pode tentar usar para fazer isso.
Essas ferramentas funcionam simulando a troca FIN-ACK-RST necessária para que uma conexão TCP seja completamente fechada.
NOTA: Trecho do site Killcx .
Usando cortador
Corta a conexão específica entre os dois pares de números de ip / porta fornecidos.
Usando Killcx
Corta conexões para ip e porta remotos.
Recursos
fonte
Você pode tentar matar o processo pai. Use ps para verificar:
Em seguida,
kill -9
qualquer processo pai.fonte
Pode valer a pena anexar ao processo com strace para ver se ele está realmente ocioso ou preso em uma operação de E / S. Talvez forneça mais pistas para a questão.
strace -pPID
Pelo que li, não há como matar esse processo a não ser reiniciar. Se o processo não estiver consumindo nenhum tempo visível da CPU, é improvável que crie um impacto negativo no servidor.
fonte
Pode estar esperando um processo filho? Eu amo
ps faux
porque ele dirá se existem processos filhos ou não, e se, que você pode precisar matar.fonte