Deex
Member
Hey leider ist mein verständnis von Bash scripten nicht so wirklich gut.
Mir ist aufgefallen das bei meinem aktuellen Bash Script ein Problem besteht. Sollte das anliegende PHP script nicht reagieren bzw. laufen ohne das PHP es beendet kann der Prozess nicht mehr ausgeführt werden.
Gibt es die möglichkeit im Script eine Maximale Laufzeit festzulegen für den Prozess z.B. 5min?
Nun habe ich diese Seite hier gelesen
http://www.unixboard.de/vb3/showthread.php?40411-Timeout-f%FCr-ein-Bash-Script
Doch bin mir nicht sicher ob ich das so richtig einbauen kann ohne weitere probleme, mir Fehler ohne Kontrolle da reinzukloppen ist mir zu Riskant.
Am einfachsten sieht einfach die Variable $timeout 1000s aus.
Mir ist aufgefallen das bei meinem aktuellen Bash Script ein Problem besteht. Sollte das anliegende PHP script nicht reagieren bzw. laufen ohne das PHP es beendet kann der Prozess nicht mehr ausgeführt werden.
Gibt es die möglichkeit im Script eine Maximale Laufzeit festzulegen für den Prozess z.B. 5min?
Code:
#!/bin/bash
PROCESS_NUM=$(ps -ef | egrep "/var/www/clients/client1/web18/web/api/cm_tracker9.php" | grep -v "grep" | wc -l)
if [ $PROCESS_NUM -gt 0 ]
then
echo
echo '#-----------------------------------------------#'
echo '| Starting background worker: |'
echo '| |'
echo '| >>>>>>>>>>>>>>>>>> FAILED <<<<<<<<<<<<<<<<<< |'
echo '| Process is already running! |'
echo '#-----------------------------------------------#'
echo
else
echo
echo '#-----------------------------------------------#'
echo '| Starting background worker: CMTracker 9 |'
echo '#-----------------------------------------------#'
echo
nohup php /var/www/clients/client1/web18/web/api/cm_tracker9.php 2> /var/www/clients/client1/web18/web/api/logs/cm_tracker_9_error.log > /var/www/clients/client1/web18/web/api/logs/cm_tracker_9.log &
fi
http://www.unixboard.de/vb3/showthread.php?40411-Timeout-f%FCr-ein-Bash-Script
Doch bin mir nicht sicher ob ich das so richtig einbauen kann ohne weitere probleme, mir Fehler ohne Kontrolle da reinzukloppen ist mir zu Riskant.
Am einfachsten sieht einfach die Variable $timeout 1000s aus.
Zuletzt bearbeitet: