Aller au contenu

Exécution du script Shell


Messages recommandés

Il y a 10 heures, StephWe a dit :

J'ai été obligé de garder "-an" car "-l" prend trop de temps à charger dans la fonction is_running et le retour n'est jamais correct. 

  • -l : listen (comme ça tu peux enlever un grep)
  • -n : pas de résolution dns (c'est ça qui prend du temps)
  • -t : tcp

=>netstat -lnt

Il y a 10 heures, StephWe a dit :

Donc, dans la fonction is_running (je n'ai pas oublié le not "!" au départ de la condition ) : Quand penses-tu ?

"$(pidof node | grep "^$PID$" && netstat -an | egrep ".*:1337" | awk -F' ' '{print $6}' | grep "^LISTEN$")"

ton erreur c'est le &&, si la première partie est ok, ta variable sera définie, même si le second test est faux

=>il faut faire 2 tests indépendants

[ -z "test process ] && [ -z "test port" ]

Il y a 10 heures, StephWe a dit :

J'ai rien trouvé qui pouvait me mettre sur la piste. Tu peux m'en dire plus ? 

  1. quand tu lances un process dans une shell, celui ci est attaché au shell
  2. quand tu fermes le shell, il envoi un signal à ses process pour leur demande de se fermer (en l’occurrence un SIGHUP)
  3. dans ton script tu peux, au choix, demander à ne pas être attaché au shell (nohup) ou capturer le SIGHUP (avec trap)

https://en.wikipedia.org/wiki/SIGHUP

https://en.wikipedia.org/wiki/Nohup

http://www.christopher.compagnon.name/techno/shell-trap.html

 

Lien vers le commentaire
Partager sur d’autres sites

Salut, j'ai fait les modif comme ceci :

is_running() {
    PID=$(get_pid)
    ! [ -z "$(pidof node | grep "^$PID$")" ] && ! [ -z "$(netstat -lnt | egrep ".*:1337" | awk -F' ' '{print $6}' | grep "^LISTEN$")" ]
}

Je suis dans le bon ?

J'ai testé la commande nohup et cela fonctionne temps que je ne quitte pas le terminal. Mais d'après ceci : 

Citation

nohup does not automatically put the command it runs in the background; you must do that explicitly, by ending the command line with an & symbol.

Voici ce que j'ai tapé :

nas> nohup /usr/local/etc/rc.d/s0001_manage-nodeJS.sh start &
nas> nohup: appending output to nohup.out
nas> exit

Tu as une idée sur le fait qu'après avoir tapé exit, le processus s'arrête ?

PS : le site http://www.christopher.compagnon.name est vraiment génial :geek: merci pour le lien.

Lien vers le commentaire
Partager sur d’autres sites

tu devrais sortir les tests du IF, c'est illisible comme tu fais, mais si ça marche, à toi de voir

pour nohup, j'ai indiqué dans le script, pas dehors

avec "nohup /usr/local/etc/rc.d/s0001_manage-nodeJS.sh start &" tu sors s0001_manage-nodeJS.sh du shell, pas ce qui est dedans ^^

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.