Existe um util chamado cron
. Normalmente, cron
gerencia o agendamento de tarefas no Linux. Mas também há poucas outras maneiras de fazer isso.
No caso de cron
, você pode executar crontab -l
para ver todas as tarefas agendadas pelo usuário atual.
Se você quiser verificar a tarefa de outro usuário, use a tecla -u $username
Para verificar as%% das tarefas do usuário: root
Para entender o formato crontab, leia wiki
Se você deseja detectar exatamente o desligamento do sistema
Uma das possíveis soluções é envolver o comando sudo crontab -u root -l
em um script.
Outra solução é escrever um sinal SIGTERM que detecta shutdown
, mas essa solução não fornece tempo quando o sistema começa a parar. Leia sobre a armadilha aqui
Além disso, há outra solução complicada:
Se você executar trap
, você gerará um processo que iniciará o desligamento às 20:00.
Você pode encontrar esse processo usando sudo shutdown -r 20:00
$ ps -ef | grep shutdown
root 32222 32032 0 15:55 pts/8 00:00:00 sudo shutdown -r 20:00
root 32223 32222 0 15:55 pts/8 00:00:00 shutdown -r 20:00
c0rp 32382 32233 0 15:55 pts/10 00:00:00 grep --color=auto shutdown
E você pode ver uma hora aqui. Se você matar esse processo, o desligamento será cancelado