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 04/11/2009, 19h12   #1
Membre émérite
 
Avatar de NiamorH
 
Inscription : juin 2002
Messages : 1 299
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 299
Points : 910
Points : 910
Par défaut Lancer script au démarrage d'Ubuntu

Bonjour,
j'ai écrit un script shell comme indiqué dans ce post : http://forum.ubuntu-fr.org/viewtopic.php?id=85281

Seulement celui-ci semble soit ne pas s'être exécuté, soit avoir échoué.
Déjà, pour répondre à cette question, j'ai fait des echo dans mon script pour tracer, mais maintenant je ne sais pas comment consulter le log... Où sont supposés s'afficher les echo ?

Merci d'avance.

EDIT : le forum ubuntu semble être KO pour le moment, en gros j'ai mis mon script exécutable dans /etc/init.d/ et j'ai fait sudo update-rc.d monscript defaults
NiamorH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2009, 20h09   #2
Membre éclairé
 
Inscription : mars 2007
Messages : 263
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 263
Points : 314
Points : 314
Citation:
Envoyé par NiamorH Voir le message
Bonjour,
j'ai écrit un script shell comme indiqué dans ce post : http://forum.ubuntu-fr.org/viewtopic.php?id=85281

Seulement celui-ci semble soit ne pas s'être exécuté, soit avoir échoué.
Déjà, pour répondre à cette question, j'ai fait des echo dans mon script pour tracer, mais maintenant je ne sais pas comment consulter le log... Où sont supposés s'afficher les echo ?

Merci d'avance.

EDIT : le forum ubuntu semble être KO pour le moment, en gros j'ai mis mon script exécutable dans /etc/init.d/ et j'ai fait sudo update-rc.d monscript defaults
Tu peux toujours rediriger tes echos dans un fichier...
montesq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2009, 23h01   #3
Membre actif
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 172
Points : 172
Si tu lances ton script après syslogd et si tu as la commande logger
tu peux tracer directement dans les fichiers se trouvant sous /var/log/

ça en fait des si
ericduval est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2009, 09h46   #4
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Pour les logs, je suis d'accord avec montesq.

Citation:
Envoyé par NiamorH
j'ai mis mon script exécutable dans /etc/init.d/ et j'ai fait sudo update-rc.d monscript defaults
argh, c'est mal !

Il serait bon que nous voyons ton script, ou qu'on sache ce qu'il fait.

A priori, il est préférable de paramétrer /etc/init.d/skeleton (en le renommant, et en le rendant exécutable, après, bien sûr), ensuite pour l'update-rc.d, ça a l'air bon, pourvu que les services dont dépend éventuellement ton script soient effectivement démarrés auparavant.

Mais bon, ça dépend de ce que fait ton script...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2009, 12h38   #5
Membre émérite
 
Avatar de NiamorH
 
Inscription : juin 2002
Messages : 1 299
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 299
Points : 910
Points : 910
Pas bête la redirection vers un fichier, je vais essayer, merci.

ericduval je ne sais pas répondre à tes questions.

N_BaH qu'est-ce qui est mal ? De le mettre à cet endroit ?
Voici le script :
Code shell :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/sh
 
######
## http://forum.ubuntu-fr.org/viewtopic.php?id=85281
######
 
######
## /etc/init.d/bootIC: démarre le service d'Intégration Continue
## Comprend:
## - le service Repository de Perforce sur le port 1666.
## - le service d'Integration Continue CruiseControl (DashBoard Guest: http://localhost:8080/dashboard Host: port 1668)
######
 
VAR_JAVA_HOME=/usr/
VAR_CC_HOME=/usr/local/bin/cruisecontrol-bin-2.8.2/
VAR_CC_PATH=/usr/local/bin/cruisecontrol-bin-2.8.2/cruisecontrol.sh
 
echo -n "Démarrage du script de boot du système d'Intégration Continue."
 
# On vérifie tout d'abord que les programmes requis sont exécutable, sinon fin du script
test -x java || exit 0
test -x p4d || exit 0
test -x $VAR_CC_PATH || exit 0
 
echo -n "Vérification des exécutables terminée."
 
# Suivant l'argument que l'on va ajouter après le nom du script, on va
# définir différentes possibilités au script grâce à l'instruction 
# case
case "$1" in
    # si on tape # /etc/init.d/bootIC start, les instructions 
    # qui suivent vont être exécutées
    start)
        export P4PORT=1666
        p4d -r ~/p4 -d
        export JAVA_HOME=$VAR_JAVA_HOME
        cd $VAR_CC_HOME
        cruisecontrol.sh
        ;;
    # Fin des instructions si on met l'argument start après le nom  
    # du script
    # si on tape  /etc/init.d/bootIC stop, les 
    # instructions suivantes vont être exécutées
##    stop)
    # Fin des instructions si on met l'argument stop après le nom
    # du script si on tape /etc/init.d/bootIC restart, 
    # les instructions suivantes vont être exécutées
##    restart)
    # Si on tape 
    # /etc/init.d/bootIC alors le script affichera 
    # les différents arguments que l'on peut donner au script
    *)
        echo "Usage: /etc/init.d/bootIC start" >&2
        exit 1
        ;;
esac
 
exit 0
## Fin du script !

D'ailleurs une question au passage, que signifie le >&2 dans : echo "Usage: /etc/init.d/bootIC start" >&2 ?
NiamorH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2009, 13h37   #6
Membre éclairé
 
Inscription : mars 2007
Messages : 263
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 263
Points : 314
Points : 314
Citation:
Envoyé par NiamorH Voir le message
Pas bête la redirection vers un fichier, je vais essayer, merci.
de rien

Citation:
Envoyé par NiamorH Voir le message
D'ailleurs une question au passage, que signifie le >&2 dans : echo "Usage: /etc/init.d/bootIC start" >&2 ?
C'est pour rediriger les informations générées par le démarrage du script vers la sortie d'erreur. Plus d'infos:
http://www.tuteurs.ens.fr/unix/shell/entreesortie.html
montesq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2009, 14h09   #7
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Citation:
Envoyé par NiamorH
N_BaH qu'est-ce qui est mal ? De le mettre à cet endroit ?
oui, les scripts devraient rester dans les répertoires utilisateurs. Pour faire propre, ils sont liés dans /usr/sbin. Il y a de nombreux avantage à adapter /etc/init.d/skeleton.

Pour ton script, il me semble que le premier test ne permet pas de l'exécuter entièrement, car tu ne donnes pas à java son chemin absolu.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2009, 19h18   #8
Membre émérite
 
Avatar de NiamorH
 
Inscription : juin 2002
Messages : 1 299
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 299
Points : 910
Points : 910
Salut.

Alors j'ai un peu avancé. Voici mon script avec les modifications en rouge.

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh

######
## http://forum.ubuntu-fr.org/viewtopic.php?id=85281
######

######
## /etc/init.d/bootIC: démarre le service d'Intégration Continue
## Comprend:
## - le service Repository de Perforce sur le port 1666.
## - le service d'Integration Continue CruiseControl (DashBoard Guest: http://localhost:8080/dashboard Host: port 1668)
######

VAR_JAVA_HOME=/usr/
VAR_CC_HOME=/usr/local/bin/cruisecontrol-bin-2.8.2/
VAR_CC_PATH=/usr/local/bin/cruisecontrol-bin-2.8.2/cruisecontrol.sh
FICHIER_LOG=/home/romain/Bureau/log

> $FICHIER_LOG
echo " " >> $FICHIER_LOG
echo " -------- Système d'Intégration Continue --------" >> $FICHIER_LOG
echo " " >> $FICHIER_LOG

# On vérifie tout d'abord que les programmes requis sont exécutable, sinon fin du script
test -x /usr/bin/java || exit 0
echo "java disponible" >> $FICHIER_LOG
test -x /usr/local/bin/p4d || exit 0
echo "p4d disponible" >> $FICHIER_LOG
test -x $VAR_CC_PATH || exit 0
echo "CruiseControl disponible" >> $FICHIER_LOG

# Suivant l'argument que l'on va ajouter après le nom du script, on va
# définir différentes possibilités au script grâce à l'instruction 
# case
case "$1" in
    # si on tape # /etc/init.d/bootIC start, les instructions 
    # qui suivent vont être exécutées
    start)
        echo " " >> $FICHIER_LOG
        echo " -------- Starting Perforce --------" >> $FICHIER_LOG
        echo " " >> $FICHIER_LOG
        export P4PORT=1666
        p4d -r ~/p4 -d >> $FICHIER_LOG
        export JAVA_HOME=$VAR_JAVA_HOME
        echo " " >> $FICHIER_LOG
        echo " -------- Starting CruiseControl --------" >> $FICHIER_LOG
        echo " " >> $FICHIER_LOG
        $VAR_CC_PATH >> $FICHIER_LOG
        ;;
    # Fin des instructions si on met l'argument start après le nom  
    # du script
    # si on tape  /etc/init.d/bootIC stop, les 
    # instructions suivantes vont être exécutées
##    stop)
    # Fin des instructions si on met l'argument stop après le nom
    # du script si on tape /etc/init.d/bootIC restart, 
    # les instructions suivantes vont être exécutées
##    restart)
    # Si on tape 
    # /etc/init.d/bootIC alors le script affichera 
    # les différents arguments que l'on peut donner au script
    *)
        echo "Usage: /etc/init.d/bootIC start" >&2
        exit 1
        ;;
esac

exit 0
## Fin du script !
Au démarrage d'ubuntu, j'ai bien un fichier log sur mon bureau, nickel.
Par contre mes services ne sont pas disponibles... Que ce soit Perforce ou CruiseControl.

Dans mon log, Perforce semble s'être correctement lancé, mais CruiseControl ne cherche pas son fichier de config au bon endroit :
Citation:
-------- Système d'Intégration Continue --------

java disponible
p4d disponible
CruiseControl disponible

-------- Starting Perforce --------

Perforce Server starting...

-------- Starting CruiseControl --------

Using Cruise Control at /usr/local/bin/cruisecontrol-bin-2.8.2
(...)
[cc]nov.-10 19:10:40 Main - Config file not found: /home/romain/config.xml

Usage:

Starts a continuous integration loop

cruisecontrol [options]
J'ai essayé de rajouter cd $VAR_CC_HOME avant le lancement de CruiseControl.sh (ça marche bien quand je le fait sur la console, mais dans un script, ça marche beaucoup moins bien...).

L'erreur pour CruiseControl n'explique pas le fait que le service Perforce ne soit pas lancé... Des idées ?

Merci!
NiamorH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2009, 16h24   #9
Membre émérite
 
Avatar de NiamorH
 
Inscription : juin 2002
Messages : 1 299
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 299
Points : 910
Points : 910
up! Je n'ai toujours pas trouvé pourquoi mes services n'étaient pas lancés.
NiamorH 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 +1. Il est actuellement 22h07.


 
 
 
 
Partenaires

Hébergement Web