É possível executar uma função ou comando em um horário específico?
8
É possível executar uma função ou comando em um horário específico? Como um exemplo explícito, é possível matar o emacs em um horário específico (horário determinado pelo sistema operacional).
Eu vejo alguém está tomando medida difícil de evitar emacs vício :)
biocyberman
Respostas:
14
Você deseja usar a função run-at-time, descrita no capítulo 38.10 do manual Emacs Lisp. No seu caso, algo como isto deve funcionar:
(run-at-time "20:30" nil #'kill-emacs)
Se a função que você deseja chamar aceita parâmetros, você pode especificá-los como parâmetros adicionais para run-at-time:
(run-at-time "5 sec" nil #'message "Tempus volat, hora fugit.")
Observe que os tempos absolutos são considerados hoje, mesmo que existam no passado; portanto, o primeiro exemplo acima será encerrado imediatamente se for depois das 20:30.
Coloquei seu código no meu arquivo .emacs. Mata emacs em um determinado momento! Mas quando eu reinicio o emacs, ele é imediatamente morto. Alguma dica?
Nome
1
@Name editado para esclarecer.
JCH
LOL, você pode começar com a opção -q para ignorar o arquivo init que estará brindando seu emacs até meia-noite. Em seguida, o sapatinho de cristal cai e você pode editar novamente até o mesmo horário amanhã.
Respostas:
Você deseja usar a função
run-at-time
, descrita no capítulo 38.10 do manual Emacs Lisp. No seu caso, algo como isto deve funcionar:Se a função que você deseja chamar aceita parâmetros, você pode especificá-los como parâmetros adicionais para
run-at-time
:Observe que os tempos absolutos são considerados hoje, mesmo que existam no passado; portanto, o primeiro exemplo acima será encerrado imediatamente se for depois das 20:30.
fonte