Rularea daemonului pe perl

Odată ce a devenit necesar să rulați perl-script în modul daemon. De ce am nevoie de ea - este o altă poveste, dar asta vreau să împărtășesc.







Din moment ce nu îmi place în mod deosebit "reinventarea bicicletelor", am decis mai întâi Google. Este demn de remarcat faptul că nu au existat multe exemple de implementare, marea majoritate a cărora a descris un prototip al unui server tcp utilizând IO :: Socket sau Socket. + ramificație cu furculiță (). O varianta similara a perl-demonului nu se potrivea destul, iar curiozitatea ma prins.
. Ar trebui să existe o descriere a orelor lungi de căutare a "momentului adevărului", pe care omite. Soluția sa dovedit a fi destul de simplă.

Numărul pasului 1. Codul în sine perl-demon.

Acest exemplu poate fi considerat complet ca gol pentru scopurile dvs. În plus, puteți executa codul cel puțin în fiecare secundă, spre deosebire de cron. Puteți începe manual, nu uitați de dreptul de a executa și de a adăuga În consola, va porni daemonul în fundal. De exemplu: / home / full / path / exec-daemon






Mergem mai departe.

Pasul 2. Autoloading daemon perl atunci când sistemul de cizme.

Aici totul este standard și simplu - /etc/rc.d Voi nota că experimentele au fost efectuate pe Ubuntu 10.04. și poate că unele elemente pot fi diferite. În directorul /etc/init.d/, puneți scriptul shell pentru a porni daemonul nostru:

Notă aici: PID = `ps afx | awk '/ exec-daemon $ / "Am mers în așa fel încât atunci când conduc daemonul Perl, nu trebuie să mă uit la fișierele de blocare și de blocare. adică, ne uităm odată în procese, iar apoi, dacă există un pid, vom jura sau vom începe.

Apoi, creați legături simbolice în directorul rc0.d - rcS.d, opțional oriunde doriți, dar cel puțin rc3.d. Aici adevărul este o nuanță: titlul legăturii ar trebui să înceapă cu S sau K, ceea ce înseamnă start sau stop, respectiv; după ce numărul trebuie să fie de la 0 la 100, ceea ce înseamnă ordinea de pornire a procesului. Și apoi numele scriptului tău shell.

De exemplu, @ S91exec-daemon, (pentru începători: câinele va apărea automat când creați o legătură simbolică.) Ctrl + x + s) Toate! Supraîncărcat, făcând în consola ps afx și căutând pe demonul nostru acolo.







Articole similare

Trimiteți-le prietenilor: