Pages : 1
#1 Le 03/04/2013, à 14:28
- jean-luc5629
commande "ou" || RESOLU
Bonjour;
j'ai un script qui vérifie que le programme rtorrent est en marche :
if ! ( ps -U user1 | grep rtorrent > /dev/null )
then macommande.sh
fi
ça fonctionne.
Mais ayant installé rtorrent en multi-utilisateurs; j'ai testé ceci, mais en vain :
if ! (( ps -U user1 | grep rtorrent > /dev/null ) || ( ps -U user2 | grep rtorrent > /dev/null ) || ( ps -U user3 | grep rtorrent > /dev/null ))
then macommande.sh
fi
Je ne suis pas très doué en prog, alors si quelqu'un pouvait m'éclairer.
merci d'avance.
Dernière modification par jean-luc5629 (Le 22/05/2013, à 17:34)
Hors ligne
#2 Le 03/04/2013, à 16:01
- obibann
Re : commande "ou" || RESOLU
Tu pourrais peut-être simplifier en utilisant la commande "pidof"
pidof rtorrent
Retourne le(s) pid(s) si le logiciel est lancé, sinon null.
if [ ! -z "`pidof rtorrent`" ] ; then
[...]
fi
Dernière modification par obibann (Le 03/04/2013, à 16:05)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#3 Le 03/04/2013, à 16:46
- jean-luc5629
Re : commande "ou" || RESOLU
Tu pourrais peut-être simplifier en utilisant la commande "pidof"
pidof rtorrent
Retourne le(s) pid(s) si le logiciel est lancé, sinon null.
if [ ! -z "`pidof rtorrent`" ] ; then [...] fi
Merci;
Mais il faut que le lancement du script "macommande.sh" soit réalisée même si un seul pid manque;
dans ce que tu me proposes, ça me renvoie les 3 pids ce qui est normal vu que j'ai 3 sessions de lancées (1/user):
root@cubie:~# pidof rtorrent
8556 3432 3208
si le rtorrent de user2 tombe par exemple ça me revoie 2 pids :
root@cubie:~# pidof rtorrent
3432 3208
Et il faudrait dans ce cas que "macommande.sh" puisse être lancée; c'est pour celà que j'avais penché vers l'opérateur "OU" ||
Donc, je n'ai pas encore la solution, sauf à faire 3 tâches cron différentes du type :
if ! ( ps -U userx | grep rtorrent > /dev/null );then ...;fi avec x allant de 1 à 3
dommage de ne pas pouvoir le faire en une seule tâche, mais c'est certainement possible...
a+++
Hors ligne
#4 Le 03/04/2013, à 17:05
- obibann
Re : commande "ou" || RESOLU
En une commande:
if [ $(ps -o "user" `pidof rtorrent` | sort -u | grep -E "user1|user2|user3" | wc -l) -lt 3 ] ; then
macommande.sh
fi
Remplace user1, user2, user3 par tes users.
Pour mon exemple, j'ai mis "-lt 3" : remplace 3 par le nombre de users attendus.
Edit : Ca devrait fonctionner
Dernière modification par obibann (Le 03/04/2013, à 17:10)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#5 Le 03/04/2013, à 18:06
- jean-luc5629
Re : commande "ou" || RESOLU
Merci obibann
ça fonctionne , et c'est ça que je cherchais.
Heureusement qu'il y a les forums pour sortir de la mouise des zéros comme moi, encore merci...
J'ai soumis dans le forum réseaux : http://forum.ubuntu-fr.org/viewtopic.ph … #p13069531
un autre problème, mais je n'ai pas encore eu la chance de trouver une solution.
Mais force de patience, ça viendra peu être.
A+++
Hors ligne