J'ai ce script bash dont le travail consiste à surveiller un fichier journal pour l'occurrence d'une certaine ligne. Lorsqu'il est localisé, le script envoie un avertissement par courrier électronique, puis se termine lui-même. Pour une raison quelconque, il continue de fonctionner. Comment puis-je être sûr de mettre fin script bash ci-dessous:Le script bash de surveillance ne s'arrête pas
#!/bin/sh
tail -n 0 -f output.err | grep --line-buffered "Exception" | while read line
do
echo "An exception has been detected!" | mail -s "ALERT" [email protected]
exit 0
done
Cela n'a pas fonctionné. $ PPID renvoie le PID de démarrage (l'instance de shell à partir de laquelle le script est exécuté). Un moyen de réécrire le script sans la boucle while? – Daniil
Vérifiez la mise à jour. En fin de compte, vous avez toujours besoin d'un sous-shell, car un processus doit être en attente de la queue tandis que d'autres vérifie la sortie. –
Cela a fonctionné parfaitement! Un grand merci :) – Daniil