Obter notificação do sistema em um determinado horário?

1

Existe uma maneira, no Linux ou no FreeBSD, de receber notificações do sistema em um horário especificado? Estou pensando em algo como o que inotify no Linux faz para eventos do sistema de arquivos.

Existe uma maneira de usar o cron, mas estou perguntando se existe uma interface de nível inferior que possa ser chamada programaticamente. Se o cron é uma interface Unix 'oficial' para esse tipo de tarefa, também gostaria de saber isso.

    
por Red 22.08.2013 / 12:27

1 resposta

2

Existem duas interfaces de baixo nível que eu conheço:

Um é simplesmente fazer um sleep () até o momento em que você deseja receber a notificação. A chamada de sono é fornecida pela glibc.

O outro método seria a chamada do sistema alarm (). Ele permite que você diga ao kernel que após um período de tempo definido, ele deve enviar o processo de chamada a um SIGALRM. É muito provável que você tenha que criar um manipulador de sinal apropriado que faça o que você deseja fazer.

Para essas duas abordagens, não é possível definir o horário absoluto quando você deseja ser notificado. Em vez disso, você terá que calcular o tempo atual e calcular com base nele por quanto tempo seu processo deve aguardar até que seja despertado ou alarmado.

Referências (no Linux): homem 3 dorme; homem 2 alarme;

    
por 22.08.2013 / 14:25