Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2007, 09h04   #1
Invité régulier
 
Laurent RAHARISON
Étudiant
Inscription : août 2007
Messages : 72
Détails du profil
Informations personnelles :
Nom : Laurent RAHARISON
Localisation : Madagascar

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 72
Points : 5
Points : 5
Envoyer un message via Yahoo à cyranno
Par défaut Créer un démon

Salut!
J'ai un programme en C, et je veux qu'il s'execute au démarrage en background,
mais je ne sais pas comment proceder, si quelqu'un pourra m'aider je lui serai trés reconnaissant!
Merci et A+
cyranno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 13h40   #2
Membre éclairé
 
Homme Sébastien Desbois
Ingénieur développement logiciels
Inscription : février 2005
Messages : 199
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Desbois
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2005
Messages : 199
Points : 315
Points : 315
Bonjour,
peut-être pourrais-tu jeter un oeil aux pages de manuel de daemon ou fork.

Cordialement,
S. Desbois
Desboys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 10h11   #3
Membre habitué
 
Avatar de arnaud036
 
Inscription : juillet 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 199
Points : 120
Points : 120
Salut,

Pour créer un service au démarrage de ton PC, tu doit jetter un coup d'oeil au niveau du repertoire /etc/rc.d.
Ce répertoire est lus a chaque changement de la valeur du processus init.

Le répertoire /etc/rc.d est composer de plusieurs sous répertoire:
rc0.d -> Ce répertoire est lus lors de l'arrête du pc
rc1.d,rc2.d,rc3.d,rc4.d,rc5.d -> Ces répertoire son lus en fonction du niveau de démarrage choisis.
rc6.d -> Ce répertoire est lus lors du redemarrage du pc

init.d -> Il contient les scripts de démarrage de tes services.
(Par exemple

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
 
#AUTHOR Arnaud DELABARRE
 
case "$1" in
        start)
                echo "Démarrage Serveur POSTGRESQL..."
                #ajoute la ligne de commande de lancement de ton service
		su - postgres -c '/home/postgres/pgsql/bin/pg_ctl start -D /home/postgres/pgsql/data'
		;;
 
        stop)
                echo "Arrêt Serveur POSTGRESQL..."
                #ajoute la ligne de commande d'arret de ton service
                #Si ton deamon ne contient pas de commande d'arret tu peux recupérer le pid du deamons et le killer
                 su - postgres -c '/home/postgres/pgsql/bin/pg_ctl stop -m smart -D /home/postgres/pgsql/data'
            	;;
 
        restart)
                $0 stop
                sleep 1
                $0 start
                ;;
	status) 
		/usr/bin/pg_ctl status -D /home/postgres/pgsql/data
		;;
 
        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac
 
# End $rc_base/init.d/
Une fois ton script mis en place dans ton repertoire /etc/rc.d/init.d/ tu dois creer des liens sybolique dans les répertoire rc?.d avec la commande:
Code :
ln -s NOMDULIEN  /etc/rc.d/init.d/tonscript
Le NOMDULIEN dois respecter une certain syntaxe:
La premiere lettre doit etre soit 'S' si tu veux demarrer ton service ou 'K' si tu veux l'arreter.
Ensuite la lettre doit etre suivie d'un nombre compris entre 1-99 ce qui correspond a ta prioriter de démarrage ou d'extinction de ton service.
Et pour finir tu mets le nom de ton service.

Par exemple:
Code :
1
2
3
4
5
6
S97deamon1 -> ../init.d/deamon1  #Demarrage du deamon1 en postion 97 avant le deamon2
S98deamon2 -> ../init.d/deamon2  #Demarrage du deamon2 en postion 98 apres le deamon1
 
 
K99deamon1 -> ../init.d/deamon1   #Extinction du deamon1 avant le deamon2 
K98deamon2 -> ../init.d/deamon2   #Extinction du deamon2 apres le deamon1
Esperant que mes explications te soyent le plus claire possible.

Si tu a une question n'hésite pas
arnaud036 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h24.


 
 
 
 
Partenaires

Hébergement Web