Kernel: το kill δεν πιάνει αυτο
V13
v13 at priest.com
Wed Dec 4 01:00:01 EET 2002
On Tuesday 03 December 2002 02:17, P. Christeas wrote:
> Υποπτεύομαι[1] οτι γίνεται το παρακάτω:
> η εφαρμογή παίρνει το πρώτο signal και ξεκινάει κανονικά την διαδικασία
> τερματισμού.
> Σε κάποιο system call φτάνει το δεύτερο signal. εκεί κλειδώνει το signal
> delivery του kernel. Το race μοιάζει σαν να περιμένει το system call να
> τελειώσουν τα signals και τα signals να επιστρέψει το system call.
>
> δευτερο σενάριο: να έρχονται τα signals τη στιγμή που η εφαρμογή είναι
> zombie και το kernel να προσπαθεί να της τα δώσει (κρατώντας την ενεργή),
> ενώ δεν υπάρχει εφαρμογή.
Xoris pareksigisi, alla exeis gnosi ayton poy les ? Ena TERASTIO pososto
signals lambanontai kata tin diarkeia system calls. Opoiodipote process den
einai se katastasi Run h Zombie, perimenei kapoio system call na teleiosei.
Einai praktika adynato na yparxei tetoio bug se kernel poy kykloforise (Esto
kai dokimastiko).
Episis, sxedon ola (an oxi ola) ta system calls ta opoia perimenoyn kati,
diakoptontai apo signals.. Gia ayto kai sxedon ola exoyn san pithano lathos
to EINTR. Ayta poy den diakoptontai einai kata kanona ayta poy den exoyn
'kathysterisi' (p.x. shmget())
> Εγώ έχω στείλει αρκετά (5-10 τουλάχιστον) signals, από τα οποία τα πρώτα
> δεν είναι SIGQUIT αλλά SIGINT/TERM. Δηλ. η ουρά των signals έχει στην αρχή
> τα handleable.
> Α, σημαντικό: κατά τον τερματισμό, η εφαρμογή δεν επαναφέρει τους
> κανονικούς signal handlers [2,3]
POS to enoeis ayto ? An h efarmogi termatisei tote den tithetai tetoio thema.
Ti semantics xrisimopoieis gia toys signal handlers soy ?
>
> Βλέπω μία στιγμή την εφαρμογή stopped, πρίν το πρόβλημα, και μετά την
> ζωντανεύω (run) με SIGCONT. Νομίζω όλες τις φορές που είχα πρόβλημα, είχα
> στείλει τουλάχιστον ένα SIGCONT.
POS tin blepeis stopped?
>
> Είχα δοκιμάσει να σκοτώσω και το parent process (bash), αλλά πέρασε κι αυτό
> στην uninterruptible κατάσταση που περιγράφω.
POS dokimases na to skotoseis ? Thes na peis oti me kill -9 DEN psofise ? An
to process einai zombie tote *EINAI* skotomeno. Einai thema toy parent
process meta na to termatisei entelos. Arnoymai na pistepso oti eixes zombie
process me parent process to bash ( to opoio bash den exei ginei suspend gia
kapoio logo).. An nai stele tin eksodo ton:
ps sax
ps -aej
ps -ael
> [2] ο κανονικός handler για το SIGINT είναι το ignore
To default toy SIGINT einai na termatisei to process (man 7 signal)
> [3] δεν προσπαθώ να κάνω καλύτερη την εφαρμογή, προσπαθώ να διορθώσω τον
> kernel εδώ.
Epimeno na diorthoseis tin efarmogi.
<<V13>>
More information about the Linux-greek-users
mailing list