Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2012, à 17:30

Zaphod-Beeblebrox

Script bash au démarrage

Bonjour,

J'ai besoin de lancer un script au démarrage de mon serveur seulement, bien que le sujet sois assez traité sur internet, je m'y perd carrément et je me pose de plus en plus de questions.

En effet si je parviens, par exemple, à faire que ce script  se lance tout seul au démarrage:

#!/bin/bash

echo "Bonjour"

Vas t-il afficher Bonjour directement au démarrage ou bien vais-je devoir entrer mon login et mon mdp avant qu'il le fasse?

J'espère être suffisamment clair dans mes propos.

Merci.

Dernière modification par Zaphod-Beeblebrox (Le 16/10/2012, à 17:42)


"c'est bien la pire folie que de vouloir être sage dans un monde de fous" (Erasme)

Hors ligne

#2 Le 16/10/2012, à 21:46

Maisondouf

Re : Script bash au démarrage

Tout dépend où tu le places...

Si tu l'ajoutes dans les commandes à exécuter au démarrage avec l'utilitaire graphique, il ne s'exécutera qu'après le 'login'.

Si tu l'ajoutes via un terminal en mode 'root' dans la séquence de démarrage du système ( dans le fichier /etc/rc.local ), il s'exécutera avant le passage en mode graphique.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 17/10/2012, à 14:22

Zaphod-Beeblebrox

Re : Script bash au démarrage

Merci pour la réponse!

Cependant j'ai un souci, en effet j'ai insérer la ligne

sh /home/monscript/monscript.sh

dans le fichier rc.local (juste avant le exit0) et mon script, qui est censé m'afficher des choses... ne m'affiche rien alors que je sais que le fichier s'exécute.

Par contre j'ai besoin de précision là dessus:

Si tu l'ajoutes dans les commandes à exécuter au démarrage avec l'utilitaire graphique, il ne s'exécutera qu'après le 'login'.

merci.


"c'est bien la pire folie que de vouloir être sage dans un monde de fous" (Erasme)

Hors ligne

#4 Le 17/10/2012, à 22:37

Maisondouf

Re : Script bash au démarrage

Ben, quand tu cliques sur licône en forme d'engrenage qui est dans le coin en haut à droite, il y a une ligne de menu 'Applications au démarrage'.

Ça ouvre une fenêtre dans laquelle tu peux personnaliser les applications lancées au départ de ta session.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#5 Le 17/10/2012, à 22:49

xavier4811

Re : Script bash au démarrage

Et pourquoi

sh /home/monscript/monscript.sh

alors que tu commence le script par

#!/bin/bash
...

autorise l'exécution par

chmod +x /home/monscript/monscript.sh

et tu pourras le lancer simplement par

/home/monscript/monscript.sh

Hors ligne

#6 Le 18/10/2012, à 10:31

Zaphod-Beeblebrox

Re : Script bash au démarrage

Maisondouf a écrit :

Ben, quand tu cliques sur licône en forme d'engrenage qui est dans le coin en haut à droite, il y a une ligne de menu 'Applications au démarrage'.

Ça ouvre une fenêtre dans laquelle tu peux personnaliser les applications lancées au départ de ta session.

Ah ben non, j'ai un ubuntu server sans graphique donc 100% console. :/


xavier4811 a écrit :

Et pourquoi

sh /home/monscript/monscript.sh

alors que tu commence le script par

#!/bin/bash
...

En fait j'ai toujours cru que pour lancer un script bash c'était soit:

sh monscript.sh

soit:

./ monscript.sh

Question autorisation mon script les a toutes (par contre je l'ai fait depuis WINSCP mais ça reviens au même...à moins que non?) .

Le truc c'est que mon script c'est, pour simplifier, une boucle qui va donc tourner en permanence et ne jamais finir. Du coup j'ai peur que ça provoque des soucis que je n'aurais pas encore prévu si il se lance avant le login, d'où mes questions ici.

Dernière modification par Zaphod-Beeblebrox (Le 18/10/2012, à 10:32)


"c'est bien la pire folie que de vouloir être sage dans un monde de fous" (Erasme)

Hors ligne

#7 Le 18/10/2012, à 22:03

Maisondouf

Re : Script bash au démarrage

J'avais pas compris que c'était un serveur en mode console....

J'ai pourtant des scriptes perso dans le rc.local de mon serveur et ils affichent bien ce que je leur demande.

root@opti745:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/media/mount-usb.sh
sync
play /home/alain/Musique/startup3.wav

# mount pour ftp service
if [ ! -f /srv/ftp/PC_Install/.mounted ];
then
   echo -n "Mount FTP Dir "
   mount -o bind /media/usb1/public/PC_Install /srv/ftp/PC_Install
   if [ ! -f /srv/ftp/PC_Install/.mounted ];
   then
      echo "ERROR"
   else
      echo "[OK]"
   fi
else
   echo "FTP Dir already mounted"
fi

# mount bind de / pour duplicity
if [ -f /mnt/bind-fs/.no-disk ];
then
   mount -o bind / /mnt/bind-fs
fi

# test uppix
mount -o bind  /media/usb1/uppix/uploaded /var/apache2/www/uppix/uploaded

exit 0
root@opti745:~# 

Par contre, il se pourrait qu'il te faille intègrer des 'echo' dans tes scriptes pour que l'affichage se fasse.
Pour ce qui est d'un scripte en boucle, tu peux tester d'abord en "live" depuis un terminal ssh en ajoutant un "&" à la fin de la ligne de commande.
Le scripte s'arrêtera  à la fin de la session ssh en cas de soucis.

Dernière modification par Maisondouf (Le 18/10/2012, à 22:06)


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#8 Le 19/10/2012, à 11:00

Postmortem

Re : Script bash au démarrage

Salut,

Zaphod-Beeblebrox a écrit :

En fait j'ai toujours cru que pour lancer un script bash c'était soit:

sh monscript.sh

soit:

./ monscript.sh

En fait, si tu le lances comme ça :

sh monscript.sh

Il va s'exécuter avec sh et non bash (ça ne tient pas compte de #!/bin/bash)
Pour qu'il tienne compte de #!bin/bash, il faut le lancer avec le chemin. Donc, soit le chemin absolu (cela fonctionne peu importe où tu te trouves) :

/chemin/vers/repertoire/monscript.sh

Soit le chemin relatif (relatif à l'emplacement où tu te trouves) :

./monscript.sh # si tu es dans le répertoire contenant ton script (et il n'y a pas d'espace entre « ./ » et « monscript.sh »
# ou si tu es dans le répertoire /chemin/vers/toto par exemple :
../repertoire/monscript.sh

Autre possibilité, mettre ton script dans un répertoire contenu dans la variable PATH, tu pourras ainsi l'appeler depuis n'importe où comme ceci :

monscript.sh
Maisondouf a écrit :

J'ai pourtant des scriptes perso dans le rc.local de mon serveur et ils affichent bien ce que je leur demande.

J'ai jamais utilisé les scripts au démarrage mais je me demandais où se font les affichages ? Car il me semble que le script ainsi appelé n'est pas attaché à un terminal donc, où se font les « echo » ou les sorties des commandes ?


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#9 Le 19/10/2012, à 11:27

Maisondouf

Re : Script bash au démarrage

@Postmortem: Les affichages sortent sur l'écran de la console 'normale' (tty0).
Sur mon serveur qui n'a ni écran, ni clavier, j'ai déclaré ttyS0 comme console système et tout passe par le port RS232 (Com1) et atterri sur mon PC dans Minicom.

Alors évidement, en mode 'desktop', on ne peut pas les voir parce que le PC passe en graphique avant.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#10 Le 19/10/2012, à 11:45

Postmortem

Re : Script bash au démarrage

Merci pour tes précisions Maisondouf, me coucherai moin con ce soir !


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#11 Le 19/10/2012, à 16:20

Zaphod-Beeblebrox

Re : Script bash au démarrage

Merci pour ces précisions ça va m'aider dans ma démarche.

Mon script comporte déjà des affichages avec "echo" de partout donc si un affichage doit se faire, je ne peut pas le louper.

Je vais me pencher sur cet histoire de "&" à la fin de la ligne de commande.

En fait ce qui me fait peur c'est que mon script empêche l'os de tout charger vu que c'est une grosse boucle; Vous en pensez quoi?


"c'est bien la pire folie que de vouloir être sage dans un monde de fous" (Erasme)

Hors ligne