[Script shell] Sequencement des commandes

Fermé
gnowar Messages postés 15 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 26 août 2009 - 14 avril 2009 à 16:02
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 14 avril 2009 à 16:52
Bonjour,

Lors de l'exécution d'un script, comment s'enchainent les commandes ?

Par exemple, si je lance une installation du style :

yum install -y httpd gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-GD openssl-devel perl-DBD-MySQL mysql-server mysql-devel php php-mysql php-pear php-snmp php-gd php-ldap perl perl-Crypt-DES perl-Digest-HMAC perl-Digest-SHA1 perl-GD perl-IO-Socket-INET6 perl-Net-SNMP perl-rrdtool perl-Socket6 perl-class-DBI-mysql perl-gettext perl-Config-IniFiles perl-DBI perl-DBD-MySQL rrdtool perl-rrdtool perl-Crypt-DES perl-Digest-SHA1 perl-Digest-HMAC net-snmp-utils perl-Socket6 perl-IO-Socket-INET6 net-snmp net-snmp-libs php-snmp dmidecode lm_sensors perl-Net-SNMP net-snmp-perl fping graphviz cpp gcc gcc-c++ libstdc++ glib2-devel php-pear php-pear-DB php-pear-DB-DataObject php-pear-DB-DataObject-FormBuilder php-pear-MDB2 php-pear-Date php-pear-Numbers-Roman php-pear-Numbers-Words php-pear-HTML-Common php-pear-HTML-QuickForm php-pear-HTML-QuickForm-advmultiselect php-pear-HTML-Table php-pear-Archive-Tar php-pear-Auth-SASL php-pear-Console-Getopt php-pear-HTTP php-pear-Image-Canvas php-pear-Image-Color php-pear-Image-Graph php-pear-Image-GraphViz php-pear-Mail php-pear-Mail-Mime php-pear-Net-SMTP php-pear-Net-Socket php-pear-Net-Traceroute php-pear-Net-Ping php-pear-Validate php-pear-XML-RPC

Etant donné que toute ces installations prennent environ 20 minutes, le script va t-il attendre la fin de l'exécution ou passer à la suite une fois la commande lancée ?

Y a t-il une solution moins aléatoire que de caser un sleep 1500 si c'est le cas ?

Merci d'avance !
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2009 à 16:52
Visiblement on me dit qu'il attend bien la fin de l'install, mais j'ai du mal a comprendre comment il sait que les paquets sont installé ?
Je ne pense pas qu'il se base à 100% sur la réussite de l'installation de tous les paquets, je pense plutôt qu'il sait gérer certaines erreurs, jugées en fonction des dépendances justement, pas de dépendance pour un paquet, je continue et j'en informe à la fin, trop de dépendances et je stoppe l'install, mais en fin de commande c'est sûrement à toi de vérifier (code retour) la bonne marche de ton programme.

Ce n'est que mon avis, attends quand même davantage de retour à ce sujet.
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2009 à 16:05
Salut,

Pour lancer un script en arrière-plan il suffit de le faire suivre par une esperluette (&).
0
gnowar Messages postés 15 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 26 août 2009 6
14 avril 2009 à 16:08
Je sais bien ça, mais ça veut dire que le script passe à la suite non ?

J'ai besoin d'attendre la fin de l'installation !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2009 à 16:09
Ben à ce moment là tu ne mets rien ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gnowar Messages postés 15 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 26 août 2009 6
14 avril 2009 à 16:12
Donc ça veut dire que le script exécute les commandes une à une, il n'y a même pas un timeout ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2009 à 16:15
J'ai du mal à comprendre où tu veux en venir ;-\

Dans ton exemple il n'y a qu'une commande de lancer avec juste plusieurs paquets en paramètre.

Qu'est-ce que tu voudrais au juste avec ton timeout ?
0
gnowar Messages postés 15 Date d'inscription vendredi 10 avril 2009 Statut Membre Dernière intervention 26 août 2009 6
14 avril 2009 à 16:29
Ok désolé, je me suis peut être mal expliqué.

En pré requis je dois installer tous ces paquets car dans la suite de mon script j'install nagios et centreon qui ont des dépendances présentes dans ces paquets justement.

Je voulais savoir si le script allait lancer la commande et passer à la suite ou attendre la fin de l'install des paquets. Etant donné que l'install de ces pré requis dure environ 20/25 mn je voulais savoir si il n'y avait pas de timeout (pour pas qu'il stop en pleine install en fait...)

Visiblement on me dit qu'il attend bien la fin de l'install, mais j'ai du mal a comprendre comment il sait que les paquets sont installé ?

Une fois que l'ID du process disparaît il conclu que c'est terminé ?

J'espère être clair :s
0