Fenrir Posté(e) le 4 janvier 2016 Partager Posté(e) le 4 janvier 2016 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 ? quand tu lances un process dans une shell, celui ci est attaché au shell quand tu fermes le shell, il envoi un signal à ses process pour leur demande de se fermer (en l’occurrence un SIGHUP) 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 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StephWe Posté(e) le 4 janvier 2016 Auteur Partager Posté(e) le 4 janvier 2016 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 merci pour le lien. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fenrir Posté(e) le 4 janvier 2016 Partager Posté(e) le 4 janvier 2016 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 ^^ 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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.