Κλείσιμο του 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