Mam pracę, która działa wiecznie od momentu jej rozpoczęcia. Więc chcę go uruchomić tylko raz po wprowadzeniu go do pliku „crontab -e” i zapisaniu go (lub) za każdym razem, gdy nastąpi restart.
Jak to osiągnąć?
Mam pracę, która działa wiecznie od momentu jej rozpoczęcia. Więc chcę go uruchomić tylko raz po wprowadzeniu go do pliku „crontab -e” i zapisaniu go (lub) za każdym razem, gdy nastąpi restart.
Jak to osiągnąć?
Odpowiedzi:
Jeśli chcesz, aby uruchomić polecenie raz w późniejszym terminie, należy użyć at
polecenia.
Jeśli chcesz, aby polecenie było uruchamiane raz podczas uruchamiania systemu, poprawnym rozwiązaniem jest użycie:
@reboot
specjalnym prefiksem (patrz strona podręcznika)Ta ostatnia jest jedyną opcją dla użytkownika innego niż root.
at now
@reboot
.
Możesz użyć at (1), aby uruchomić zadanie w pewnym momencie w przyszłości. Jeśli jednak chcesz uruchomić coś przy starcie systemu i będzie on działał sam, być może potrzebujesz wpisu w /etc/init.d/? To pozwoli ci uruchomić go przy starcie systemu.
kill
(zakładając, że masz do tego uprawnienia, co robisz dla własnych procesów). Tworzenie skryptu inicjującego jest naprawdę łatwe. Poszukaj /etc/init.d/
skryptu, który nie jest zbyt długi i wymodeluj go po nim lub google dla making init scripts (your distribution)
.
/etc/init.d/skeleton
na openSuSE), który można dostosować do własnych potrzeb.
Zadanie, które działa tylko raz i działa wiecznie, dopóki nie powiesz mu, że umrze, nazywa się „demonem”. Zwykle są uruchamiane za pomocą skryptów inicjujących w /etc/init.d/.
Jeśli twoje zadanie kończy się w którymś momencie i może być uznane za pracę jednorazową, możesz spojrzeć na polecenie at. Na przykład, jeśli chciałbym dziś wieczorem uruchomić polecenie find o 22:00 i tylko raz to zrobiłbym:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
Spójrz na komendę at