Κλείσιμο του dhclient

Giorgos Keramidas keramida at ceid.upatras.gr
Thu May 29 17:45:31 EEST 2008


On Thu, 29 May 2008 17:27:19 +0300, George Notaras <gnot at g-loaded.eu> wrote:
> Giorgos Keramidas wrote:
>> : for pid in ${pidlist} ; do
>> :         kill -TERM "${pid}"
>> :         if [ $? -ne 0 ]; then
>> :                 # Cannot kill this process, try the next one.
>> :                 echo "${progname}: kill ${pid}: cannot TERM process." >&2
>> :                 continue
>> :         fi
>> :         echo "SIGTERM sent to pid ${pid}"
>> :         ps xauww | fgrep -v grep | grep -q "${pid}.*${dhclient}.*${ifname}"
>> :         if [ $? -eq 0 ]; then
>> :                 # Wait a bit for the running dhclient process to exit.
>> :                 sleep 3
>> :         fi
>> :         kill -9 "${pid}"
>> :         if [ $? -ne 0 ]; then
>> :                 echo "${progname}: kill ${pid}: cannot KILL process." >&2
>> :         else
>> :                 echo "SIGKILL sent to pid ${pid}"
>> :         fi
>> :
>
> Μια ερώτηση έχω. Στέλνονται δύο signals στην κάθε process του dhclient,
> ένα SIGTERM κι ένα SIGKILL. Όσες φορές το δοκίμασα το process του
> dhclient παύει να υπάρχει με το SIGTERM. To SIGKILL γιατί το στέλνουμε;
> Sorry, αν είναι προφανές, αλλά δεν έχω καταλάβει γιατί γίνεται αυτό.

Είναι απλό.  Είναι bug :-)

Το KILL θα 'πρεπε να προσπαθεί να το στείλει μόνο αν *απέτυχε* το TERM.

Το ps xauwww | fgrep ... είναι μια προσπάθεια να βρει αν ακόμα τρέχει το
process, αλλά έβαλα το KILL έξω από το condition του grep.  Μάλλον είναι
πιο χρήσιμο κάτι σαν:

: for pid in ${pidlist} ; do
:         kill -TERM "${pid}"
:         if [ $? -ne 0 ]; then
:                 # Cannot kill this process, try the next one.
:                 echo "${progname}: kill ${pid}: cannot TERM process." >&2
:                 continue
:         fi
:         echo "SIGTERM sent to pid ${pid}"
:         ps xauww | fgrep -v grep | grep -q "${pid}.*${dhclient}.*${ifname}"
:         if [ $? -eq 0 ]; then
:                 # Wait a bit for the running dhclient process to exit.
:                 sleep 3
:
:                 kill -9 "${pid}"
:                 if [ $? -ne 0 ]; then
:                         echo "${progname}: kill ${pid}: cannot KILL process." >&2
:                 else
:                         echo "SIGKILL sent to pid ${pid}"
:                 fi
:         fi




More information about the Linux-greek-users mailing list