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+
Version imprimable
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+
Bonjour,
peut-être pourrais-tu jeter un oeil aux pages de manuel de daemon ou fork.
Cordialement,
S. Desbois
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:)
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:
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/
Le NOMDULIEN dois respecter une certain syntaxe:Code:ln -s NOMDULIEN /etc/rc.d/init.d/tonscript
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:
Esperant que mes explications te soyent le plus claire possible.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
Si tu a une question n'hésite pas