na cosa così da avviare ogni x con crontab, no ?
if ps x |grep -v grep |grep -c quellochevuoi >/dev/null
then
echo "mining... ok"
echo && date >> /var/log/mining.ok
else
echo "mining... restarting"
fi
ziomik non hai letto il mio post vero? TL;DR, vero..
Come dicevo sopra, con una soluzione come quella che proponi tu qui, se si inchioda la macchina non hai modo di riavviarla.
Troppo paranoico? E invece no, cito da cgminer/GPU-README:
Q: Cgminer stops mining (or my GPUs go DEAD) and I can't close it?
A: Once the driver has crashed, there is no way for cgminer to close cleanly.
You will have to kill it, and depending on how corrupted your driver state
has gotten, you may even need to reboot. Windows is known to reset drivers
when they fail and cgminer will be stuck trying to use the old driver instance.
GPUs going SICK or DEAD is a sign of overclocking too much, overheating,
driver or hardware instability.
Quando succede questa cosa non c'è speranza, sotto linux, di riavviare automaticamente il sistema perchè il driver ati impazzisce (per un bug evidentemente, maledetti driver closed..) e molto spesso questo porta a un consumo della CPU 100% da parte del kernel: la macchina si blocca e il tuo bel scriptino cron non si avvierà e anche se ce la facesse.. in bocca al lupo per portare a termine il reboot, in questa situazione io via software non ce l'ho mai fatta.
Per questo motivo avrebbe più senso tenere un demone che:
* tiene aperto /dev/watchdog prendendosi così in carico l'effettivo refresh del watchdog
* ci scrive dentro qualcosa ogni N secondi (con N minore del timeout T del watchdog, tipicamente T~60) dopo aver tentato di recuperare la situazione, sempre se qualcosa è andato storto
Esempio concreto [N = 30], stiamo usando cgminer, tutto va bene e ogni 30 secondi il nostro scriptino riazzera il watchdog. Una GPU va in DEAD. Lo scriptino se ne accorge perchè vede che l'hashrate è molto inferiore di quel che dovrebbe (o se ne accorge in altro modo, a vostra discrezione), prova a chiudere cgminer (per poi riaprirlo o per riavviare, cambia nulla, deve pur essere chiuso), il driver va in stallo e la CPU pure (vedi sopra). Pure il nostro scriptino si blocca, il watchdog non viene refreshato e appena va i timeout fa un hard-reset e riparte tutto in automatico