Bjr,
Un exemple pour firefox:
if ! ps aux | grep -q /firefox-bin; then firefox; fi
La commande ps seul ne sort rien d'exploitable chez moi (en console en tout cas).
C'est une autre façon de voir 😉
EDIT: Pour éviter un pipe 😃
if ! grep -q /firefox-bin < <(ps aux); then firefox; fi
EDIT2:
Ca devrait donner un truc du genre, si la sortie de ps est comme indiqué plus haut
cd /pcsfolder
plist="webcommanager lcddrive"
while :; do
# peut être pas besoin de lancer un ps pour chaque exe à checker ?
data_ps=$(ps)
for proc in ${plist}; do
if ! grep -q /${proc} <<< "${data_ps}"; then
#pas besoin de eval ! Et les commandes ne devraient pas être lancé en arrière plan ?
${proc} &
fi
done
sleep 10
done
EDIT3:
pfff, j'en ai des choses à dire 😃
Je connais pas tes softs, mais si ils gardent la main, et que tu veux qu'il tournent tous le temps, pourquoi ne pas faire simplement un script qui lance tes commandes dès le départ, et les relancer dès qu'elle rendent la main. Au besoin, créer un fichier dans tmp pour arrêter la boucle.
Il n'y aura aucune commande ou autre sleep.
genre:
Webcom()
{
webcommanager
Webcom
}
Lcddrive()
{
lcddrive
Lcddrive
}
Webcom &
Lcddrive &