Как да спрете да демон
Той дори не е типи сигнал, че ви изпратим и че не разбирате как работи.
Ето какво пише:
Т.е. Вашата програма е завършена и когато PID<0 и тогда, когда pid>0. остава само една стойност - нула. Но това означава, че ние сме в процес на дете! В резултат на това на екипа
Тя изпраща сигнал към всички процеси с ПОУ == 0. Това се говориш. Ако детето ви иска да прави Harikiri процес, това е направено с помощта на излизане (0);
Ако искате да убие дете на родител, е необходимо да се изпрати сигнал до клона, където PID> 0. сигнал може да бъде, добре, най-малкото, SIGINT. Това е едно и също нещо сто натиснете Ctrl / В.
Има само един начин да убие процеса - да го изпрати сигнал, че не може да бъде обработена. Метод (всяка) не може да обработва сигнала, ако не е направена от процесора за обработка на сигнал или сигнала не се обработва в prinyipe (-9).
За да може да изпрати сигнал до процеса, трябва да знаете на PID. И тук са две възможности: 1) Вие знаете неговото PID, защото те самите го създали с помощта на вилица хирургия. 2) процес - правилно написана демон и той честно постави в директорията / реактивна / осъществява собствената PID-файл, който се записва и PID. В този случай името на файла трябва да съвпада с името на един работещ демон, и то е лесно да се разбере.
По този начин, си дете процес трябва да запише своя идентификатор на PID-файла в директорията / АБ / план. И си процес, който го убива - да се чете този файл, го извади и да причини PID убийство () с този PID-тата.
Да започнем с това, че ти не разбираш същността на процесите. Ако пуснете програмата отново, тя генерира цял нов процес, и разбира се, завършването на излизане ще доведе до точно този нов процес, а не този, който използвате като демон. Обикновено в програмите, които поддържат демона се извършва, както следва: процес PID-демон се съхранява някъде на обществено място (/ Var / тичам, / ПТУ), а процесът е стартиран с параметъра --stop proofreads процеса на PID-демон, и прави го убие с това PID стойност.
SIGCONT не може да помогне в този случай, тъй като сигналът продължава да изпълнява процесът спря, и ако процесът вече е стартиран, този сигнал се игнорира.