Création d'un démon

C'est ici que sont postés les messages qui n'entrent pas dans le cadre des autres forums.
Ces messages doivent néanmoins rester en conformité avec la <a href=http://www.ixus.net/charte_forums.php>Charte</a> qui régule les forums.
Nous vous remercions d'éviter les sujets complètement off-topic (foot, pêche ...). Ne perdons pas de vue qu'Ixus reste un site relatif à l'informatique.

Modérateur: modos Ixus

Création d'un démon

Messagepar Pico10 » 09 Juin 2005 15:43

Bonjour,

je viens d'intaller iptables et snort_inline et je voudrais écrire un petit démon qui vérifie en permanence que snort_inline est toujours en route.

Pour cela, on m'a conseillé d'utiliser le langage C mais par contre, j'ai aucune idée de comment s'écrit un démon en C...

J'ai fait un peu de google mais je trouve pas grand chose de clair.... Avez vous de liens?? ou meme un morceau de code qui puisse me guider....

Merci d'avance!

Pico
Dernière édition par Pico10 le 10 Juin 2005 14:13, édité 2 fois au total.
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar arapaho » 09 Juin 2005 16:08

Pas beoin de ré-inventer la roue :wink: :

http://cr.yp.to/daemontools.html
No One Will Ever Need More Than 640K Ram - Bill Gates, 1981
Avatar de l’utilisateur
arapaho
Amiral
Amiral
 
Messages: 1119
Inscrit le: 18 Avr 2002 00:00
Localisation: Genève

Messagepar Pico10 » 09 Juin 2005 16:27

Donc si j'ai bien compris, c'est lui qui se charge tout seul de relancer snort_inline à chaque fois qu'il s'arrête??

J'ai juste a faire un script du genre :
#!/bin/bash
exec snort_inline -Qdc /etc/snort.conf -l /var/log/snort


sous le nom de run et après il se débrouille comme un grand?? :?
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar Pico10 » 09 Juin 2005 16:32

Et en plus je viens de voir :

System requirements
daemontools works only under UNIX.


moi je suis sous linux (kernel 2.4.30), c'est génant?? Je suis pas sûr de mon coup là... :?
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar bad_trips » 09 Juin 2005 16:34

lol Linux et un UNIX il y a plsieur sorte de UNIX c'est tout
you are bad
bad_trips
Major
Major
 
Messages: 98
Inscrit le: 27 Mai 2005 13:19

Messagepar Pico10 » 09 Juin 2005 16:36

Oui enfin ca je sais que c'est de la même famille mais y a bien des différences sinon ils s'appeleraient tous les deux UNIX ou Linux!! :wink:
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar bad_trips » 09 Juin 2005 16:45

C'est comme un windows il ne s'appelle pas tous que windows il y a 98 2000 xp ....
Ben là c'est pareil enfin peut de chose pret tu a du linux avec les variantes qu'on connait ms tu a aussi AIX et bien d'autre.

J'espere ne pas provoquer trop de haine avec ce que je vien de dire car ce n'est pas tout a fait ca mais c'est pour que tu comprennes
you are bad
bad_trips
Major
Major
 
Messages: 98
Inscrit le: 27 Mai 2005 13:19

Messagepar Pico10 » 09 Juin 2005 16:49

Oui oui j'ai bien compris le truc, mais bon c'est vrai que tu as pas mal généralisé là!! ;)

Avec tout ca, je sais toujours pas comment ca marche exactement daemon tools.... Je vais devoir tester... :?

Enfin si vous avez d'autres solutions, je suis preneur!!! ;)
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar varsass » 09 Juin 2005 17:30

Plutôt que de te faire c*** à coder ton démon ou à utiliser des programmes "exotiques", je crois qu'un simple script qui vérifie si ton programme tourne, et le relance si il tourne pas suffit. Ensuite tu va voir dans le cron.d, et tu fais s'executer ton script régulièrement.

Moi c'est ce que je ferai.
" Uuu ... because www is so 90's"
http://unununium.org
Avatar de l’utilisateur
varsass
Second Maître
Second Maître
 
Messages: 32
Inscrit le: 02 Mai 2005 17:42

Messagepar Pico10 » 09 Juin 2005 17:37

On m'a déjà conseillé cron sur un autre forum mais le problème avec cron c'est qu'on peut vérifier au maximum toutes les minutes, moi il faut que je vérifie beaucoup plus souvent que ca... Je dois vérifier le plus possible tout en faisant attention à ne pas trop consommer de ressources...

Sinon je viens de tenter un script :
while(true);
do snort_inline -Qdc /etc/snort.conf -l /var/log/snort;
done;


Mais quand je l'exécute au démarrage, il me bloque la première console et je ne peux pas en ouvrir une autre avec ALT+F2 par exemple... Je ne comprend pas trop pourquoi d'ailleurs... :?
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar varsass » 09 Juin 2005 17:39

Et si tu le lançais en tâche de fond



$ ton_script.sh &

" Uuu ... because www is so 90's"
http://unununium.org
Avatar de l’utilisateur
varsass
Second Maître
Second Maître
 
Messages: 32
Inscrit le: 02 Mai 2005 17:42

Messagepar Pico10 » 09 Juin 2005 17:42

Et coment tu lances un script en tache de fond au démarrage?? En passant par un autre script ? :?
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar varsass » 09 Juin 2005 17:46

parce qu'en plus tu veux qu'il se lance au démarrage ?

Si t'es sous Red Hat, le mieux est d'aller tripoter le init.d pour en faire un pseudo service, ensuite tu fais un ntsysv et tu lui dis de le lancer au démarrage.
" Uuu ... because www is so 90's"
http://unununium.org
Avatar de l’utilisateur
varsass
Second Maître
Second Maître
 
Messages: 32
Inscrit le: 02 Mai 2005 17:42

Messagepar Pico10 » 09 Juin 2005 17:50

Je suis pas sous RedHat, j'ai construit un système Linux From Scratch parce que tout ca doit tenir sur un disque de 256 Mo... :roll:

On m'a parlé de inittab avec respawn aussi mais on m'a dit que c'était pas très propre... Je suis pas expert la dessus donc je sais pas trop... :?
Avatar de l’utilisateur
Pico10
Major
Major
 
Messages: 85
Inscrit le: 11 Avr 2005 10:19

Messagepar tomtom » 09 Juin 2005 17:54

Il faut utiliser daemontools c'est fait pour ça et y'a pas mieux (sauf à modifier completement ton init et le remplcer par runit par exemple... ).

Tu as quelle distrib ? Pour la plupart, un installer de daemon tools est fourni ( apt-get install daemontools-installer :):) ) avec des exemples pour rajouter un service.

t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Suivant

Retour vers Autres bavardages

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Google [Bot] et 1 invité

cron