Aller au contenu

Featured Replies

Posté(e)
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

 

Posté(e)
  • Auteur

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.

Posté(e)

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 ^^

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…

Qui est en ligne (Afficher la liste complète)

  • Il n’y a aucun utilisateur enregistré actuellement en ligne

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.