Привет народ,
Как убить процесс в 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 приветствуются :)