Précédent   Forum des professionnels en informatique > Systèmes > Linux > Distributions > Ubuntu
Ubuntu Vos questions sur les distributions Ubuntu et dérivées (Kubuntu, Xubuntu... )
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 20/08/2011, 09h07   #1
Membre à l'essai
 
Inscription : mai 2008
Messages : 213
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 213
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Par défaut lancer demon python au démarrage

Bonjour,

J'ai un script python que j'ai transformé en demon en suivant un tutoriel trouvé sur un autre site.

J'ai vérifié si le démon était bien dans la liste des demon avec :
sudo sysv-rc-conf
Là je vois bien mon demon et les cases de 2 à 5 cochées mais quand je redémarre, et que je teste:
/etc/init.d/monDemon status
Il me retourne not running

De plus j'arrive bien à démarrer et arrêter le démon manuellement
/etc/init.d/monDemon start

La solution que j'ai trouvée pour qu'il se lance au démarrage est d'aller dans le menu d'ubuntu : préférences=>programme au démarrage=>ajouter et là je mets le nom et le path de mon demon : /etc/init.d/monDemon

J'aimerai remplacer cette dernière action par une commande pour pouvoir l'ajouter à mon script bash et que tout soit automatisé.

Merci de vos futures bonnes réponses
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/08/2011, 08h57   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 536
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 536
Points : 7 749
Points : 7 749
salut la solution c'est les liens de start de niveau

par exemple
qui pointe sur et
pareil pour l'arret avec bien sur...

après à toi de bien les placer dans les bons level pour tes besoins.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 18h04   #3
Membre à l'essai
 
Inscription : mai 2008
Messages : 213
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 213
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Merci de votre réponse.

Donc je dois modifier
en
[code]s10monDemon[/ CODE]

et dans mon script bash au moment où je crée le service
Code :
sudo update-rc.d monDemon defaults 99
en
Code :
sudo update-rc.d monDemon defaults 10
Et donc là le demon démarrera avec la machine?

Merci
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 24/08/2011, 08h40   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 536
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 536
Points : 7 749
Points : 7 749
non

/etc/rc5.d/S99daemon est un lien symbolique vers le script /etc/init.d/daemon

le script /etc/init.d/daemon doit obligatoirement accepter le paramêtre start

idem pour le K99

le n° (ici 99) est juste un numéro d'ordre de démarrage.

c'est inutile, et tu fais ça pour chaque level nécéssitant l'arret ou le démarrage

================

il ne faut pas refaire le rc update derrière puisque tu as fais son boulot à la main.

en plus utiliser rc update est mauvais car tu en prends l'habitude et quand tu te trouve sur une autre machine, avec une autre distribution ou un unix proprio tu seras perdu
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 21h39   #5
Membre à l'essai
 
Inscription : mai 2008
Messages : 213
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 213
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Desoler mais je suis un peu perdu pcq je debute avec linux donc c est nouveau pour moi
Je ne comprends pas le terme level
Au moment ou je cree le demon je dois quand meme faire update.rc?
Et au final comment je fais pour que mon script demarre automatiquement?

Merci de votre aide
bender86 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/08/2011, 08h50   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 536
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 536
Points : 7 749
Points : 7 749
les levels c'est pas très compliqué
l'init se fait sur différents levels de 0 à 6

0 : arrêt machine
6 : reboot
1 : single (que root)
2 : single + réseau actif (la pluspart du temps ce niveau n'existe plus il est intégré dans le level1)
3 : consoles + réseaux pour tous utilisateurs
4 : n'existe plus
5 : accès normal multi-utilisateur et consoles graphiques actives

pour chaque niveau il y a dans /etc un volume rcx.d correspondant
/etc/rc1.d/
/etc/rc2.d/
etc...

ils ne contiennent que des liens symboliques vers les différents scripts de démarrage de /etc/init.d

ces liens symboliques sont només Sxxnomdaemon et Kxxnomdaemon ou xx est un n° qui correspond à l'ordre de démarrage (si il y a deux n° identiques c'est l'ordre ALPHANUM qui fait foi)

tout script dans /etc/init.d doit supporter en paramêtre au minimum start et stop, idéalement restart et status en plus.

un exemple complêt :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cat > /etc/init.d/demarre.sh
#!/bin/sh
case "$1" in
  start)
        echo start >> /tmp/toto
        ;;
  restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >> /tmp/toto
        exit 3
        ;;
  stop)
        echo stop >> /tmp/toto
        ;;
  *)
        echo "Usage: $0 start|stop" >&2
        exit 2
        ;;
esac
exit 0
une fois le script existant
Code :
1
2
3
4
5
6
 
chmod 750 /etc/init.d/demarre.sh
 
ln -s /etc/init.d/demarre.sh /etc/rc5.d/S99demarre
ln -s /etc/init.d/demarre.sh /etc/rc6.d/K99demarre
ln -s /etc/init.d/demarre.sh /etc/rc0.d/K99demarre
Là tu as crée un demarreur qui alimente un fichier /tmp/toto aux arrêt/démarrages/reboot de la machine.

il n'y a aucune autre action à faire
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 18h19   #7
Membre à l'essai
 
Inscription : mai 2008
Messages : 213
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2008
Messages : 213
Points : 24
Points : 24
Envoyer un message via ICQ à bender86
Me revoilà pour mon démon,

J'ai voulu faire un .bash our automatiser la procédure de création du démon
Code :
1
2
3
4
5
6
7
8
9
#!/bin/bash
 
sudo ln -s /opt/PingService_linux/pingueur.py /usr/bin/pingueur
sudo ln -s /opt/PingService_linux/param.txt /usr/bin/param.txt
sudo cp /opt/PingService_linux/pingueur /etc/init.d/pingueur
sudo chmod 777 /etc/init.d/pingueur
sudo ln -s /etc/init.d/pingueur /etc/rc5.d/S99pingueur
sudo ln -s /etc/init.d/pingueur /etc/rc6.d/K99pingueur
sudo ln -s /etc/init.d/pingueur /etc/rc0.d/K99pingueur
mais au moment où je fais

Code :
sudo /etc/init.d/pingueur start
J'ai l'erreur:
start-stop-daemon: unable to start /usr/bin/pingueur (No such file or directory)

Or dans /usr/bin, pingueur pointe bien vers mon fichier pingueur.py qui est dans /opt/PingService_linux
et j'ai bien tous les droits sur les différents fichiers

Pour ce qui est du pingueur dans /etc/init.d/, j'ai copié le skeletton et remplacer de cette façon
Code :
1
2
3
4
5
6
7
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="teste serveur"
NAME=pingueur
DAEMON=/usr/bin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
Merci de votre aide pcq j'ai besoin d'automatiser la création pour pouvoir le dispatcher facilement chez les clients.
bender86 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 11h34.


 
 
 
 
Partenaires

Hébergement Web