O seguinte deve funcionar, mas não tenho certeza sobre o comando, pois não estou familiarizado com o gminer.
O script
Cole o texto abaixo em um arquivo vazio, salve-o como check_gminer.py, salve-o em algum lugar:
#!/usr/bin/python3
import subprocess
import getpass
curruser = getpass.getuser()
service = "gminer"
def createlist_runningprocs():
processesb = subprocess.Popen(["ps", "-u", curruser], stdout=subprocess.PIPE)
process_listb = (processesb.communicate()[0].decode("utf-8")).split("\n")
return process_listb
def runsornot():
runningprocs_list = createlist_runningprocs()
if not application[:15] in str(runningprocs_list):
subprocess.Popen(["sh", "m.sh"])
else:
pass
runsornot()
Editando o cronfile
Adicione a seguinte linha ao seu cronfile (digite crontab -e
em um terminal):
* * * * * python3 /path/to/script/check_gminer.py
O script parece a cada minuto se o serviço for executado e reiniciado, se não. A questão é se funciona ou não, se a sua GPU tiver problemas. Nós vamos ter que ver.
Procedimento alternativo, se o método acima não for suficiente para a sua situação
A alternativa (reinicialização) precisa de privilégios de administrador. Portanto, se você precisar executar o comando reboot por um cronjob, precisará editar /etc/crontab
( sudo nano /etc/crontab
), no qual é possível definir por qual usuário o comando deve ser executado (< > crontab -e
).
Adicione a linha:
0 */3 * * * root reboot
Para o /etc/crontab
e seu computador será reiniciado a cada três horas.