Je voudrais lancer une commande dans le cas où Seamonkey serait en cours
d'exécution mais je ne trouve pas la bonne syntaxe, même après avoir lu le
chapitre relatif aux tests ici : http://abs.traduc.org/abs-fr/ch07.html
Un exemple de mes essais manqués :
$ if [ ps -C seamonkey ]; then echo "seamonkey tourne"
> ^C
le 12/04/2015 à 11:25, Sergio a écrit dans le message <552a3a08$0$3320$ :
On peut faire également plus simplement : if ps -C seamonkey; then ...
Après, le problème c'est que ps -C xxx (qui n'est pas POSIX) renvoie toujours quelque chose sur la sortie standard et qu'il faut s'en débarrasser via du « >/dev/null ». Le mieux reste donc de filter à la source, c'est à dire : 1. demander à ps de ne lister que l'essentiel (le nom des processus) 2. regarder si l'on trouve notre bonheur (grep est le roi pour ça)
if ps -eo comm | grep -q seamonkey; then
On peut utiliser pgrep (qui est fait pour ça)
if pgrep seamonkey; then
Oui mais comme ps -C, pgrep ou pidof ne sont pas standards. Après, ps est un mauvais exemple vu que les BSD ne respectent pas POSIX sur cette commande (ps -A -o comm devrait fonctionner par contre).
-- Benoit Izac
Bonjour,
le 12/04/2015 à 11:25, Sergio a écrit dans le message
<552a3a08$0$3320$426a74cc@news.free.fr> :
On peut faire également plus simplement :
if ps -C seamonkey; then
...
Après, le problème c'est que ps -C xxx (qui n'est pas POSIX) renvoie
toujours quelque chose sur la sortie standard et qu'il faut s'en
débarrasser via du « >/dev/null ». Le mieux reste donc de filter à la
source, c'est à dire :
1. demander à ps de ne lister que l'essentiel (le nom des processus)
2. regarder si l'on trouve notre bonheur (grep est le roi pour ça)
if ps -eo comm | grep -q seamonkey; then
On peut utiliser pgrep (qui est fait pour ça)
if pgrep seamonkey; then
Oui mais comme ps -C, pgrep ou pidof ne sont pas standards. Après, ps
est un mauvais exemple vu que les BSD ne respectent pas POSIX sur cette
commande (ps -A -o comm devrait fonctionner par contre).
le 12/04/2015 à 11:25, Sergio a écrit dans le message <552a3a08$0$3320$ :
On peut faire également plus simplement : if ps -C seamonkey; then ...
Après, le problème c'est que ps -C xxx (qui n'est pas POSIX) renvoie toujours quelque chose sur la sortie standard et qu'il faut s'en débarrasser via du « >/dev/null ». Le mieux reste donc de filter à la source, c'est à dire : 1. demander à ps de ne lister que l'essentiel (le nom des processus) 2. regarder si l'on trouve notre bonheur (grep est le roi pour ça)
if ps -eo comm | grep -q seamonkey; then
On peut utiliser pgrep (qui est fait pour ça)
if pgrep seamonkey; then
Oui mais comme ps -C, pgrep ou pidof ne sont pas standards. Après, ps est un mauvais exemple vu que les BSD ne respectent pas POSIX sur cette commande (ps -A -o comm devrait fonctionner par contre).