Hotei
Possivelmente relacionado a esta pergunta anterior , gostaria gostaria de poder executar uma tarefa por um período de tempo especificado, depois pará-la / matá-la e iniciá-la novamente.
Especificamente, executo o aplicativo Folding @ Home em minha estação de trabalho Linux. Periodicamente, ele terá problemas para fazer o login no servidor doméstico e permanecerá inativo por um longo tempo, mas não liberará memória / recursos que ele reivindicou (sim, eu percebo que isso é um bug na ferramenta, mas posso ' t consertar isso atualmente). Normalmente, apenas o ato de matar e iniciar a ferramenta permitirá que ela faça o check-in novamente.
Então, gostaria de poder executar algo como:
run_for <time> ./fah6
Existe uma ferramenta desse tipo ou devo escrever um invólucro para que o cliente fah6
seja ativado depois de, digamos, uma semana e reiniciá-lo?
Hotei
ferramenta de tempo limite.
timeout - run a command with a time limit
timeout [OPTION] DURATION COMMAND [ARG]...
timeout [OPTION]Start COMMAND, and kill it if still running after DURATION.
por exemplo:
timeout 15s ./fah6
sleep 60 & VAR=$! ; sleep 10 ; kill $VAR
Neste exemplo, ' sleep 60 ' é um marcador para o comando que você deseja encerrar antecipadamente. Substitua ' 10 ' por quanto tempo você deseja executar o seu comando cronometrado (no máximo) em segundos. O acima deve sair após 10 segundos, matando o processo ' sleep 60 '.
Note que isto é para o bash.
cron
funcionará, mas se você quiser que ele seja executado uma vez ou se a hora mudar de um dia para o outro, seria mais simples usar at
( na página do manual ):
$ ./fah6 &
[1] 12345
$ at 1800
at> kill 12345
at> <EOT>
Os passos são:
&
no final da linha inicia como um trabalho em segundo plano). A próxima linha relata o número do processo at>
aparece, digite kill e o número do trabalho informado acima Personnaly, eu implementaria dentro do script a capacidade de executar, aguardar e matar o subprocesso.
Em python com algo como:
Se não estiver em Pyton, use os.system ('./ fah6') no código do script que manipula wait / stop / restart
Tags linux scheduled-tasks