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.