pagratios Δημοσ. 23 Απριλίου 2013 Share Δημοσ. 23 Απριλίου 2013 Ο πατέρας δημιουργεί με fork ένα παιδί για να κάνει exec αλλά όταν θα έρθει το SIGINT θα τερματίσει ο πατέρας. Πως μπορεί να το αγνοήσει ο πατέρας αλλά όχι το παιδί ? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nilosgr Δημοσ. 23 Απριλίου 2013 Share Δημοσ. 23 Απριλίου 2013 Θα καλεσεις τη signal(SIGINT, siginthandlerFunc) ξεχωριστα στον κωδικα του παιδιου και του πατερα pid_t pID = fork(); if (pID == 0) // child { // Code only executed by child process signal(SIGINT, siginthandlerFunc); } else if (pID < 0) // failed to fork { exit(1); } else // parent { // Code only executed by parent process signal(SIGINT, siginthandlerFunc2); } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
pagratios Δημοσ. 23 Απριλίου 2013 Μέλος Share Δημοσ. 23 Απριλίου 2013 Μπορώ να βάλω στον πατέρα την sigignore και στο παιδί να αφήσω να περάσει το signal κανονικά? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
pagratios Δημοσ. 23 Απριλίου 2013 Μέλος Share Δημοσ. 23 Απριλίου 2013 (επεξεργασμένο) Τελικά έβαλα τον πατέρα να το αγνοεί και το παιδί να καλεί την signal(SIGINT,SIG_DFL) και λειτούργησε. Τώρα πήγα να ενσωματώσω αυτά μέσα σε ένα πρόγραμμα το οποίο καλώ την ptrace και δεν λειτουργούσε τίποτα. edit: Μήπως το θέμα είναι με την trace? Επεξ/σία 24 Απριλίου 2013 από pagratios Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nilosgr Δημοσ. 24 Απριλίου 2013 Share Δημοσ. 24 Απριλίου 2013 Δυστυχως δε ξερω. Ελπιζω να σε βοηθησει καποιος αλλος Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
pagratios Δημοσ. 24 Απριλίου 2013 Μέλος Share Δημοσ. 24 Απριλίου 2013 έκανα το εξής childID = pid; //chilcID global act.sa_handler= handler; sigfillset (&( act.sa_mask )); sigaction (SIGINT , &act , NULL ); sigaction (SIGHUP , &act , NULL ); sigaction (SIGTERM , &act , NULL ); στον πατέρα και η συνάρτηση είναι η void handler(int signo) { //printf("pid = %u\n",childID); kill(childID,signo); } αλλά το παιδί δεν καταλαβαίνει τίποτα. Και αν αντί για signo βάλω SIGKILL τότε τερματίζει αλλά ο πατέρας κολλάει Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα