A maneira mais direta é simplesmente executar uma vez :
sudo service start codesys && watch -n 7200 'sudo service stop codesys && sudo service start codesys'
Isso executará o comando sudo service stop codesys && sudo service start codesys
(que interrompe o serviço codesys
e, em caso de sucesso, o inicia novamente) a cada 7200
segundos exibindo a saída potencial.
Observe que, neste caso, já que o comando a ser executado é, na verdade, uma cadeia de dois comandos, as cotas para incluir o comando são necessárias.
Aqui está um resumo das seções relevantes para watch
de man watch (trusty)
:
[...] DESCRIPTION watch runs command repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, the program is run every 2 seconds. By default, watch will run until interrupted. OPTIONS [...] -n, --interval seconds Specify update interval. The command will not allow quicker than 0.1 second interval, in which the smaller values are converted. [...]
Para executá-lo na inicialização, adicione essa linha a /etc/rc.local
antes da linha exit 0
:
nohup sh -c "sudo service start codesys && watch -n 7200 \"sudo service stop codesys && sudo service start codesys\"" > /dev/null &
nohup
inicia um processo imune a SIGHUP
sinais, redireciona o processo ' stdin
para /dev/null
e ambos stdout
e stderr
para um arquivo nohup.out
, nesse caso stdout
e stderr
são redirecionados para /dev/null
, já que você não precisa verificar a saída. Para usar nohup
é feito para que o processo não seja eliminado quando a execução de /etc/rc.local
terminar. O operador &
coloca o processo em segundo plano, para que a execução de /etc/rc.local
possa continuar.