Jak zapobiec uruchamianiu poprzednich zadań przez ATD?


9

Demon at to świetne narzędzie! Jeśli jednak zadanie jest zaplanowane na 8:00, a maszyna jest w tym czasie wyłączona, at uruchomi zadanie przy każdym uruchomieniu komputera. Chciałbym zatrzymać to zadanie, jeśli minie czas. Przeszukałem strony podręcznika i online, ale albo nie ma odpowiedzi, albo jej nie znalazłem. Używam Arch, ale o ile wiem, jest bardzo podobny we wszystkich dystrybucjach.

Każda pomoc jest mile widziana!

Odpowiedzi:


7

Kiedy praca staje się pracą przeszłą? Jeśli włączysz system o 7:59:50, a atdemon uruchomi się o 8:00:01, czy zadanie powinno zostać wykonane? Co się stanie, jeśli demon rozpocznie się o 7:59:59, ale odczytanie wszystkich plików zajmie dwie sekundy?

Ty decydujesz! Rozpocznij pracę od sprawdzenia czasu i przerwij, jeśli czas minął.

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

2

Możesz napisać skrypt inicjujący, który anuluje wszystkie zaplanowane zadania podczas zamykania lub ponownego uruchamiania.

Nie jestem pewien co do Arch-Linux - czy istnieje /etc/sysconfig/atcoś podobnego? Być może jest to po prostu przełącznik konfiguracji, który należy odwrócić ...


Myślę, że to najlepsze rozwiązanie, opróżnij atkolejkę przed aturuchomieniem.
— bahamat

To jest dokładnie to, czego oczekuję byłoby / powinno być możliwe! Niestety /etc/sysconfig/w Arch nie ma żadnego katalogu ... I żaden z plików wymienionych na stronach man nie jest plikami konfiguracyjnymi.
— Elmer

@Elmer Właśnie googlowałem i czytałem o arch. Linuxie. Wydaje się, że „/etc/rc.d/atd” jest skryptem inicjującym demona at-tam. Zajrzyj tam, jeśli widzisz, jak analizuje jakiś plik konfiguracyjny. Jeśli nie masz szczęścia, musisz wybrać własny skrypt startowy (np. Nazwij go atcleari uruchom wcześniej atd).
— Nils,

2

Mój głos jest na crondemona.

Jeśli chcesz uruchamiać go o określonych porach dnia, ale nie codziennie o tej samej porze, utworzę tabelę crontab z jednym wpisem na dzień z określonym czasem wykonania:

Niektóre przykłady zaczerpnięte z crontab(5):

# run five minutes after midnight, every day
5 0 * * *       command
# run at 2:15pm on the first of every month
15 14 1 * *     command
# run at 10 pm on weekdays
0 22 * * 1-5    command

0

To, czego chcesz, to demon cron. Robi dokładnie to, co chcesz.

Nakarm swoją ulubioną wyszukiwarkę demona crona, a znajdziesz wiele instrukcji i instrukcji. man croni man crontabjest również pomocny.


Dzięki za pomoc, ale cron nie działa na mój problem. Potrzebuję uruchomienia skryptu o określonych porach dnia, ale nie o tej samej porze każdego dnia.
— Elmer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.