Bonjour,
Je viens poster ici car je debute en Bash et je planche sur un probleme depuis un moment.
Je dois programmer un script permettant de detecter l'arret de certains processus et de les relancer le cas écheant.
1 2 3 4 5 6 7
|
#!/bin/bash
cat /home/user/Desktop/processus.txt | awk -F" " '{
PROC=system("ps -A | grep -c cron")
$2=PROC
system("echo " $2)
}' |
Le fichier processus.txt est de la forme :
<nom du processus> <Commande de lancement>
Donc en gros, mon idée était :
- Parcourir le fichier processus.txt
- Effectuer un grep sur la commande ps avec le nom du processus
- Si le "ps -A | grep -c" me renvoi une ligne, je ne fais rien, sinon, je relance le processus.
Le problème est que je n'arrive pas à récupérer le résultat que la commande ps dans une variable. La commande est executé, m'affiche la ligne correspondant dans la console, mais la variable ne contient rien.
J'ai essayé beaucoup de combinaisons : PROC, $PROC, $(system(...))...
Et la je commence à secher.
Pendant que j'y suis, je dois aussi faire un script de gestion des ressources (cpu, memoire, reseau, ...), mais j'ai en gros le même problème. En plus, je dois faire ce script en version poste et en version reseau (avec centralisation des données de tous les postes), et la je suis totalement paumé 
Et pour combler tout ca, le tout doit être POSIX 
Donc voila, si quelqu'un pouvait me filer un coup de pouce, ce serait vraiment cool :p
Partager