The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
как убить процесс?, !*! sproot, 11-Июл-08, 15:31  [смотреть все]
Привет народ,
Как убить процесс в Solaris, который против того чтобы его убили? :)

[root@smt root]# kill -l
1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
5) SIGTRAP      6) SIGABRT      7) SIGEMT       8) SIGFPE
9) SIGKILL     10) SIGBUS      11) SIGSEGV     12) SIGSYS
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGUSR1
17) SIGUSR2     18) SIGCHLD     19) SIGPWR      20) SIGWINCH
21) SIGURG      22) SIGIO       23) SIGSTOP     24) SIGTSTP
25) SIGCONT     26) SIGTTIN     27) SIGTTOU     28) SIGVTALRM
29) SIGPROF     30) SIGXCPU     31) SIGXFSZ     32) SIGWAITING
33) SIGLWP      34) SIGFREEZE   35) SIGTHAW     36) SIGCANCEL
37) SIGLOST     39) SIGRTMIN    40) SIGRTMIN+1  41) SIGRTMIN+2
42) SIGRTMIN+3  43) SIGRTMAX-3  44) SIGRTMAX-2  45) SIGRTMAX-1
46) SIGRTMAX


[root@smt root]# ps -ef | grep 1751 | grep -v grep
xxx  1751     1  0 11:25:30 ?        0:00 /usr/local/bin/perl -C xxx.conf
[root@smt root]#

[root@smt root]# for sig in `seq 1 46`; do kill -$sig 1751; done
[root@smt root]#

[root@smt root]# ps -ef | grep 1751 | grep -v grep
xxx  1751     1  0 11:25:30 ?        0:00 /usr/local/bin/perl -C xxx.conf
[root@smt root]#

[root@smt root]# mdb -k -p 1751
mdb: failed to initialize /usr/lib/libthread_db.so.1: libthread_db call failed unexpectedly
mdb: warning: debugger will only be able to examine raw LWPs
Loading modules: [ ld.so.1 libc.so.1 libthread.so.1 ]
>
> ::kill

mdb: victim process PID 1751 forcibly terminated
> ::quit

[root@smt root]# ps -ef | grep 1751 | grep -v grep
xxx  1751     1  0 11:25:30 ?        0:00 /usr/local/bin/perl -C xxx.conf
[root@smt root]#

[root@smt root]# /usr/ucb/ps axuww | head -1 && /usr/ucb/ps axuww | grep 1751 | grep -v grep
USER       PID %CPU %MEM   SZ  RSS TT       S    START  TIME COMMAND
xxx   1751  0.0  0.11334412016 ?        S 11:25:30  0:00 /usr/local/bin/perl -C xxx.conf
[root@smt root]#

[root@smt root]# showrev
Hostname: xxx
Hostid: xxx
Release: 5.9
Kernel architecture: sun4u
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.9 Generic 118558-16 Oct 2005

Перезагрузку сервера не предлагать, это не интересно :) Решения из разрядов hack приветствуются :)

  • как убить процесс?, !*! Serge_jar, 16:13 , 11-Июл-08 (1)
    попробуй просто kill -9

    >[root@smt root]# for sig in `seq 1 46`; do kill -$sig 1751;
    >done
    >[root@smt root]#

    а вот твой конструкция с `seq 1 46` у меня не пошла:
    #for sig in `seq 1 10` ; do
    > echo $sig
    > done

    -bash: seq: command not found

    1) где нашел такое? кинь доку. Пробовал sh тоже не катит.
    2) попробовал повторить на:
    #showrev
    Hostname: blade1000
    Hostid: ХХХХХХХХХХХ
    Release: 5.10
    Kernel architecture: sun4u
    Application architecture: sparc
    Hardware provider: Sun_Microsystems
    Domain:
    Kernel version: SunOS 5.10 Generic_137111-02

    • как убить процесс?, !*! Serge_jar, 16:16 , 11-Июл-08 (2)
      kill -9  - SIGKILL убивает стопроцентно, у меня еще не было случая что бы кто то выжил ... 8-)))

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

      • как убить процесс?, !*! sproot, 17:50 , 11-Июл-08 (4)
        >kill -9  - SIGKILL убивает стопроцентно, у меня еще не было
        >случая что бы кто то выжил ... 8-)))

        ну это ты зря. При определенных обстоятельствах SIGKILL не убивает процесс. Например, в линуксе, когда процесс находится в состоянии Uninterruptible sleep. И например, когда (пусть меня поправят) некорректно написанное приложение попросту игнорирует сигнал SIGKILL. Да, и вообще, насколько я знаю, userspace приложение будет игнорировать сигналы в том случае, если в текущий момент времени приложение вызвало функцию которая выполняется в kernelspace...

        >Может у тебя есть еще какой то процесс который по новой запускает
        >перл? Хотя в этом случае менялся бы пид ...

        да, это исключено. я проверял..

        • как убить процесс?, !*! const, 18:00 , 11-Июл-08 (5)
          Надеюсь, Uninterruptible sleep - фишка линукса. Особенность неприятная и непонятно, зачем она придумана...
          Игнорировать или блокировать KILL (и STOP) нельзя. Перехватывать тоже нельзя. Они просто делают своё дело.
          • как убить процесс?, !*! sproot, 19:08 , 11-Июл-08 (6)
            >Надеюсь, Uninterruptible sleep - фишка линукса. Особенность неприятная и непонятно, зачем она придумана...

            думаю, что это фишка линукса. во всяком случае, опровержения я не нашел. В солярке этой болезни нет, наверно потому что у нее асинхронный I/O..сложно сказать..

            >Игнорировать или блокировать KILL (и STOP) нельзя. Перехватывать тоже нельзя. Они просто
            >делают своё дело.

            про SIGKILL и SIGSTOP все верно..

    • как убить процесс?, !*! sproot, 17:40 , 11-Июл-08 (3)
      >попробуй просто kill -9

      я это уже пробовал :)

      >[оверквотинг удален]
      >>[root@smt root]#
      >
      >а вот твой конструкция с `seq 1 46` у меня не пошла:
      >#for sig in `seq 1 10` ; do
      >> echo $sig
      >> done
      >
      >-bash: seq: command not found
      >
      >1) где нашел такое? кинь доку. Пробовал sh тоже не катит.

      у тебя coreutils не стоит. можешь здесь взять: ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/coreutils-6....


      >[оверквотинг удален]
      >2) попробовал повторить на:
      >#showrev
      >Hostname: blade1000
      >Hostid: ХХХХХХХХХХХ
      >Release: 5.10
      >Kernel architecture: sun4u
      >Application architecture: sparc
      >Hardware provider: Sun_Microsystems
      >Domain:
      >Kernel version: SunOS 5.10 Generic_137111-02




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру