Bash: Check up, eseguire un processo, se non in esecuzioneBash: Check up, eseguire un processo, se non in esecuzione
Ciao, Il mio requisito è che, se il server Memcache è giù per una qualsiasi ragione nella produzione, voglio di riavviare immediatamente
in genere io avviare il server Memcache in questo modo con l'utente come nessuno con la replica, come illustrato di seguito
memcached -u nessuno -l 192.168.1.1 -m 2076 -x 192.168.1.2 -v
Quindi, per questo ho aggiunto una voce nel crontab questo modo
(crontab -e)
*/5 * * * * /home/memcached/memcached_autostart.sh
memcached_autostart.sh
#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
memcached -u nobody -l 192.168.1.1 -m 2076 -x 192.168.1.2 -v
else
echo "eq 0 - memcache running - do nothing"
fi
La mia domanda è dentro memcached_autostart.sh, per autorestarting del server memcached, c'è qualche problema con lo script sopra ??
O
Se non v'è alcun approccio migliore per raggiungere questo (invece di usare cron) Si prega di condividere la vostra esperienza.
penso che ci sia anche una funzione chiamata 'daemon' in '/ etc/init.d/functions'. Anche questo si occupa di runfile.pid. Quindi è una buona idea procurarsi il file delle funzioni dallo script di avvio automatico e chiamare il programma tramite la funzione demone. – anishsane