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 24/09/2014, à 12:20

ryhoof19

problème exécution de script bash

Bonjour,

J'ai un problème lors de l'exécution de mon script, je reçois pas le résultat attendu. Ci-dessous mon script:

#!/bin/bash
check() {
if ps ax | grep -v grep | grep $1 > /dev/null
then
    return 1
else
    return 0
fi
}
check $1
ret=$?
echo "$ret"

Mon premier argument est un script daemon_script.sh qui ne fait rien (juste un sleep 60). Je lance mon script ci-dessus (sans que le daemon_script.sh soit lancé) mais j'ai 1 comme retour mais moi je m'attends à 0.

# ./test_running daemon_script.sh                                                                                                                                 
 1
# ps -ef | grep daemon_script.sh                                                                                                                                  
 root     21337 20417  0 12:17 pts/0    00:00:00 grep daemon_script.sh

Merci beaucoup pour votre aide.

Hors ligne

#2 Le 24/09/2014, à 13:46

serged

Re : problème exécution de script bash

ps pipé sur deux grep c'est pas un peu trop alors qu'il existe pgrep qui fait le boulot tout seul ?


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#3 Le 24/09/2014, à 14:09

ryhoof19

Re : problème exécution de script bash

Oui mais le problème n'est pas à ce niveau là ...

Hors ligne

#4 Le 24/09/2014, à 17:09

Watael

Re : problème exécution de script bash

salut,

simplifier les choses aide au débuggage!

quand on connaît le nom exact du processus qu'on cherche à détecter, on peut se satisfaire de `ps -C <processus_cherche>'

j'ai testé ta fonction, telle quelle, et elle retourne bien 0... hmm


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 24/09/2014, à 17:18

jplemoine

Re : problème exécution de script bash

Je pense surtout qu'il manque une condition....

if ps ax | grep -v grep | grep $1 > /dev/null

Je ne pense pas que ps soit une condition....

Je verrais plus un truc du style (syntaxe à adapter)

var="`ps ax | grep -v grep | grep $1`"
if "$var"= ""

Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#6 Le 24/09/2014, à 17:39

Watael

Re : problème exécution de script bash

et moi, «je pense surtout» que tu manques de connaissances élémentaires en script shell :
`if' conditionne l'exécution de telle ou telle autre partie (`then', ou `else') en fonction du retour de la commande exécutée, que ce soit `[', `test', `[[', ou n'importe quelle autre commande.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne