Cum de a opri un preaplin demon stivă în limba rusă

Nu este nici un semnal TIPI pe care le trimiteți și că nu înțelegi cum funcționează.

Iată ce scrie:

Ie Programul dvs. este finalizat și când pid<0 и тогда, когда pid>0. rămâne doar o singură valoare - zero. Dar acest lucru înseamnă că suntem în procesul de copil! Ca rezultat, echipa

Acesta trimite un semnal la procesul cu == BIP 0. Aceasta este vorbești. În cazul în care copilul dumneavoastră vrea să facă procesul harikiri, aceasta se face cu ajutorul exit (0);

Dacă vrei să omori un copil al unui părinte, este necesar să se trimită un semnal de la filiala în care pid> 0. Un semnal poate fi, de asemenea, cel puțin, SIGINT. Este același lucru o sută de presă Ctrl / C

Există o singură cale de a ucide procesul - să-l trimită un semnal care nu poate fi procesată. Procedeul (orice) nu poate procesa semnalul dacă nu este făcută de procesorul de semnal sau semnalul nu este procesat în prinyipe (-9).

Pentru că ar trimite un semnal la proces, trebuie să știi PID. Și aici sunt două opțiuni: 1) știți că BIP ei pentru că ei înșiși a creat cu ajutorul furcii chirurgie. 2) Procesul - corect scris un demon și a pus în mod onest directorul / var / rula propriul BIP-fișier, care este înregistrată și pid acesteia. În acest caz, numele fișierului trebuie să se potrivească cu numele unui demon care rulează, și este ușor de înțeles.

Astfel, procesul de copil trebuie să înregistreze BIP în BIP-fișierul în directorul / ar / termen. Și procesul pe care îl ucide - ar trebui să citească acest fișier, luați-l și cauza ucide BIP () cu acest pid-lea.

Sunt de acord că nu este înțeles în mai multe feluri. dar îmi dau seama că de fiecare dată când apelați programul se încheie procesul părinte și începe unul nou. Așa că am nevoie ca el ar fi lucrat atâta timp cât nu difuzez programul din nou de la comanda de oprire. apoi mă aștept să închid și roditelskiyif (pid> 0) și un copil (prin distrugerea) procese. dar dacă înlocuiți ucide la ieșire. vseravno procesul va funcționa. - Vova Polischuck 24 octombrie '16, la 06:24

de exemplu, aici am fost de a face pe un astfel de principiu ca fiecare copil ar trebui să fie numit proces cu plin de comandă. - Vova Polischuck 24 octombrie '16, la 06:28

Să începem cu faptul că nu înțeleg esența proceselor. Dacă executați din nou programul, acesta a generat un proces cu totul nou, și, desigur, finalizarea de ieșire va determina exact noul proces, nu cel pe care se execută ca un demon. De obicei, în programele care acceptă daemon se face după cum urmează: proces PID-daemon este stocat undeva într-un loc public (/ var / run, / tmp), iar procesul este pornit cu parametrul --stop corectează procesul PID-daemon, și mărci l omoare cu acea valoare PID.

Răspuns 24 '16 octombrie, la 10:26