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ąć?
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.
źródło
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 dlamaking 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:
źródło
Spójrz na komendę at
źródło