Eu tenho um trabalho que dura para sempre no momento em que começa. Então, eu quero iniciá-lo apenas uma vez depois de inseri-lo no arquivo "crontab -e" e salvá-lo (ou) sempre que a reinicialização ocorrer.
Como conseguir isso?
Se você deseja que um comando seja executado uma vez posteriormente, use o at
comando
Se você deseja que um comando seja executado uma vez na inicialização do sistema, a solução correta é usar:
@reboot
prefixo especial (consulte a página de manual)Esta última é a única opção para um usuário não raiz.
at now
@reboot
.Você pode usar em (1) para executar um trabalho em algum momento no futuro. No entanto, se você quiser executar algo no boot e ele continuar rodando por si só, talvez você queira uma entrada em /etc/init.d/ para isso? Isso permitiria que você iniciasse na inicialização.
fonte
kill
(supondo que você tenha permissões para isso, o que você faz para seus próprios processos). Criar um script init é realmente fácil. Procure/etc/init.d/
um script que não seja muito longo e modele o seu depois dele, ou pesquise no Googlemaking init scripts (your distribution)
./etc/init.d/skeleton
no openSuSE) que você pode adaptar para seu uso.Um trabalho que é executado apenas uma vez e dura para sempre até que você diga para morrer é chamado de "daemon". Eles são normalmente iniciados através de scripts init em /etc/init.d/.
Se o seu trabalho terminar em algum momento e puder ser considerado um tipo único de trabalho, convém examinar o comando at. Por exemplo, se eu quisesse executar o comando find às 22:00 hoje à noite e somente isso uma vez eu faria:
fonte
Dê uma olhada no comando at
fonte