Como posso executar um script em particular a cada segundo?

2

Eu tentei usar o crontab, mas ele é limitado a minutos. Existe alguma outra opção?

Eu também tentei algo como:

watch -n 1 sh /path-to-script/try.sh

Mas sempre que eu fecho o terminal ele para. Eu quero algo que funcione continuamente em segundo plano.

    
por Prashant Luhar 13.12.2017 / 22:10

2 respostas

3

Use um script com o while loop e nohup .

the_script.sh :

while :; do
  /path-to-script/try.sh
  sleep 1
done

Executar the_script.sh imune a restrições:

nohup /path/to/the_script.sh > /dev/null

Substitua /dev/null por algum caminho de arquivo se você se importa com o stdout .

    
por 13.12.2017 / 23:54
0

Com base nas informações que você forneceu, a melhor resposta é provavelmente a mais simples. Use um script de shell com um loop infinito e um atraso de 1 segundo.

#!/bin/bash
# Program that checks if MySQL is running
while [ 1 = 1 ]; do
<your code here>
sleep 1
done

O script é executado fora de um terminal. Dessa forma, ele é executado em segundo plano.

Para uma resposta mais específica, preciso saber qual comando você usa e o que você faz se não estiver em execução. Por exemplo. enviar uma notificação ou e-mail.

    
por 13.12.2017 / 22:29