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

obibann a écrit :

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