Script pour démarrer Apache/MySQL - Avis ?
Fermé
oliviertomgo
Messages postés
305
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
13 juillet 2015
-
Modifié par oliviertomgo le 17/09/2011 à 03:41
Utilisateur anonyme - 17 sept. 2011 à 18:07
Utilisateur anonyme - 17 sept. 2011 à 18:07
A voir également:
- Script pour démarrer Apache/MySQL - Avis ?
- Script vidéo youtube - Guide
- Pc long a demarrer - Guide
- Démarrer en mode sans echec - Guide
- Apache open office gratuit - Télécharger - Suite bureautique
- Windows 11 menu démarrer classique - Guide
6 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 17/09/2011 à 05:06
Modifié par jisisv le 17/09/2011 à 05:06
Bonsoir,
Premièremnt:
Ls scripts de démarrage ne sont pa lancés. Tu peux t'inspirer de ceci:
Tu places ta comande dans ne variable et tu l'exécutes; tu récupères le code d'erreur avec la variable $?.
Deuxièmement:
Les tests , correspondent à des commandes internes ou externes
Tu dois donc IMPERATIVEMENTI placer un espace entre les crochets et les commandes:
Troisièmement:
Respecte la syntaxe des instructions conditionnelles:
As-tu lu le tutoriel: bash https://abs.traduc.org/abs-5.0-fr/ ?
Bon scripting.
Johan
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
Premièremnt:
Ls scripts de démarrage ne sont pa lancés. Tu peux t'inspirer de ceci:
[root@osiris ]~#exap="/etc/init.d/apache2 inxistant" ; $exap ; echo $? Usage: /etc/init.d/apache2 {start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean|status}. 1 [root@osiris ]~# exap="/etc/init.d/apache2 start" [root@osiris ]~# exap="/etc/init.d/apache2 inxistant" [root@osiris ]~# exap="/etc/init.d/apache2 stop" [root@osiris ]~#$exap; echo $? Stopping web server: apache2 ... waiting . 0
Tu places ta comande dans ne variable et tu l'exécutes; tu récupères le code d'erreur avec la variable $?.
Deuxièmement:
Les tests , correspondent à des commandes internes ou externes
[root@osiris ]~# which [ /usr/bin/[ [root@osiris ]~# help [ |head -3 [: [ arg... ] Evaluate conditional expression.
Tu dois donc IMPERATIVEMENTI placer un espace entre les crochets et les commandes:
[root@osiris ]~# [-e .bashrc ] ; echo $? -su: [-e : commande introuvable 127 [root@osiris ]~# [ -e .bashrc ] ; echo $? 0
Troisièmement:
Respecte la syntaxe des instructions conditionnelles:
johand@osiris:~/tmp$ cat isroot if [ $UID -eq 0 ] ; then echo "You are root" else echo "Sorry" fi johand@osiris:~/tmp$ source isroot SorryVoilà en gros les principales remarques
As-tu lu le tutoriel: bash https://abs.traduc.org/abs-5.0-fr/ ?
Bon scripting.
Johan
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
oliviertomgo
Messages postés
305
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
13 juillet 2015
40
17 sept. 2011 à 05:00
17 sept. 2011 à 05:00
Bonsoir Johan, merci pour tes explications ! Déjà pour les crochets et les espaces à respecter, de même que pour le ; je pensais que la fin d'un echo était reconnu d'emblée sans avoir à ajouter de ;
Sinon, je ne cherche pas à lancer le script au démarrage. Pour ça, un service apache et mysql fait déjà l'affaire que j'ai désactivé pour ne lancer les serveurs qu'à la demande lorsque je développe. Pour cette raison pour simplifier le lancement des serveurs sans avoir à chaque fois passer par le terminal. Avec ce script, je n'aurai plus qu'à l'exécuter ce qui sera tout de suite plus pratique et plaisant à la fois de voir son propre script s'exécuter surtout que celui-ci est une première.
Merci pour ton lien que je ne connaissais pas. Je ne l'ai donc pas lu mais je vais me pencher dessus ! Sacré tuto ! De quoi bien m'occuper !
Sinon, je ne cherche pas à lancer le script au démarrage. Pour ça, un service apache et mysql fait déjà l'affaire que j'ai désactivé pour ne lancer les serveurs qu'à la demande lorsque je développe. Pour cette raison pour simplifier le lancement des serveurs sans avoir à chaque fois passer par le terminal. Avec ce script, je n'aurai plus qu'à l'exécuter ce qui sera tout de suite plus pratique et plaisant à la fois de voir son propre script s'exécuter surtout que celui-ci est une première.
Merci pour ton lien que je ne connaissais pas. Je ne l'ai donc pas lu mais je vais me pencher dessus ! Sacré tuto ! De quoi bien m'occuper !
oliviertomgo
Messages postés
305
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
13 juillet 2015
40
17 sept. 2011 à 05:06
17 sept. 2011 à 05:06
euh les ; à la fin d'une instruction en fait non pas en fin d'un echo ... décidemment pas évident de se détacher du php. En php il n'y a pas de ; en ouvrant une instruction mais une ouverture d'accolade et éventuellement un ; après un echo ou variable $variable = 'toto'; par ex ... tandis que là ça n'a plus grand chose à voir !
D'ailleurs je serais bien curieux de connaître le language utilisé. Ce serait pas du C ?
D'ailleurs je serais bien curieux de connaître le language utilisé. Ce serait pas du C ?
Utilisateur anonyme
17 sept. 2011 à 11:02
17 sept. 2011 à 11:02
salut,
la commande set ne fait pas ce que tu crois : elle (dés)active des options du shell.
les commandes dans des variables, c'est pas top : utilise des fonctions.
les tests d'exécution de commandes se font sans crochets :
dans ton code tu testes la variable, pas son action.
et pas besoin de négation si il y a une alternative.
if se termine par fi
les ; sont utilisés lorsque des commandes sont sur la même ligne.
bonne continuation
la commande set ne fait pas ce que tu crois : elle (dés)active des options du shell.
les commandes dans des variables, c'est pas top : utilise des fonctions.
les tests d'exécution de commandes se font sans crochets :
if /etc/init.d/apache2 stop then echo "Apache et MySQL OK ... FIN du script" else echo "Erreur lors du démarrage de MySQL" exit 1 fi
dans ton code tu testes la variable, pas son action.
et pas besoin de négation si il y a une alternative.
if se termine par fi
les ; sont utilisés lorsque des commandes sont sur la même ligne.
bonne continuation
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oliviertomgo
Messages postés
305
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
13 juillet 2015
40
Modifié par oliviertomgo le 17/09/2011 à 14:45
Modifié par oliviertomgo le 17/09/2011 à 14:45
Aie m.... je pensais effectivement que la commande set servait à déclarer les variables ! Gloups ...
Par contre une chose que je comprends pas. dans le code donné, tu vérifies qu'apache soit bien arrêté :
if /etc/init.d/apache2 stop et tu met l'echo ensuite comme quoi apache est ok ? ce serait pas plutôt start au lieu de stop ? ou une vérification contraire quelque chose du genre :
a = /etc/init.d/apache2 stop
if !$a
# je me sers directement de la variable puisqu'à priori associer a à quelque chose déclare a d'emblée.
then
echo "Apache Ok"
fi
Juste pour l'exemple car pas très logique comme procédé. Mieux vaut tester qu'il soit bien démarré mais alors comment vérifier l'action d'une variable si en fait je ne fais que tester la variable ?
Pour l'instant, j'essaye comme ça. Les fonctions je verrai plus tard. En tout cas merci pour le conseil
Par contre une chose que je comprends pas. dans le code donné, tu vérifies qu'apache soit bien arrêté :
if /etc/init.d/apache2 stop et tu met l'echo ensuite comme quoi apache est ok ? ce serait pas plutôt start au lieu de stop ? ou une vérification contraire quelque chose du genre :
a = /etc/init.d/apache2 stop
if !$a
# je me sers directement de la variable puisqu'à priori associer a à quelque chose déclare a d'emblée.
then
echo "Apache Ok"
fi
Juste pour l'exemple car pas très logique comme procédé. Mieux vaut tester qu'il soit bien démarré mais alors comment vérifier l'action d'une variable si en fait je ne fais que tester la variable ?
Pour l'instant, j'essaye comme ça. Les fonctions je verrai plus tard. En tout cas merci pour le conseil
Utilisateur anonyme
Modifié par qqchquicommenceparQ le 17/09/2011 à 18:08
Modifié par qqchquicommenceparQ le 17/09/2011 à 18:08
vu que la syntaxe n'est pas correcte, et que l'indentation est absente, j'ai compris comme j'ai pu.
désolé si j'ai mal retranscrit tes intentions ;)
il est possible d'utiliser des tests simplifiés
tu verras tout ça en lisant l'ABS.
bonne continuation.
désolé si j'ai mal retranscrit tes intentions ;)
il est possible d'utiliser des tests simplifiés
/etc/init.d/apache start && echo "Succès"
/etc/init.d/apache stop || echo "Echec"et de combiner
/etc/init.d/apache start && echo "démarrage : Succès" || echo "démarrage : Echec"c'est très pratique pour des tests simples
tu verras tout ça en lisant l'ABS.
bonne continuation.