Dlaczego konwertować TIMER na SERVICE?
W systemd są to dwie połowy jednego zadania: .timer mówi „kiedy”, a .SERVICE mówi „co”. Zatem realistycznym zadaniem nie jest konwersja, lecz napisanie pasującej jednostki usługi, którą wyzwala timer, albo poprzez domyślne dopasowanie nazwy, albo przez dyrektywę Unit=.
Jak przekonwertować TIMER na SERVICE
Dowolny edytor tekstu FREE
Utwórz plik o tej samej nazwie bazowej, np. backup.service obok backup.timer, dodając sekcję [Service] z ExecStart= ustawionym na Twoje polecenie; timer wyzwoli go automatycznie po nazwie.
systemctl edit FREE
Uruchom systemctl edit --full --force backup.service, aby otworzyć nową jednostkę w poprawnym katalogu, zdefiniuj ExecStart=, a następnie wykonaj systemctl daemon-reload i włącz timer.
O tych formatach
Plik .timer to jednostka systemd, która planuje czas uruchomienia innej jednostki (zazwyczaj odpowiadającego jej pliku .service) w systemie Linux, działając jako nowoczesny zamiennik dla…
Otwórz szczegóły .TIMER →Plik .SERVICE jest powiązany z Mac OS X Service Application, który jest plikiem typu system.
Otwórz szczegóły .SERVICE →Jakość i na co uważać
- Domyślnie
backup.timeraktywujebackup.service; użyjUnit=w sekcji[Timer]pliku timera tylko wtedy, gdy nazwa usługi jest inna. - Usługa powinna zazwyczaj mieć
Type=oneshotdla zadań zaplanowanych, aby systemd traktował każde uruchomienie jako odrębne zadanie. - Po utworzeniu lub zmianie jednostki uruchom
systemctl daemon-reload, w przeciwnym razie timer nie wykryje nowej usługi.
Najczęściej zadawane pytania
Czy timer może działać bez usługi?
.service, która definiuje polecenie.Skąd timer wie, którą usługę uruchomić?
foo.timer uruchamia foo.service), chyba że nadaspisz to za pomocą Unit= w pliku timera.Czy mam włączyć timer czy usługę?
.timer; systemd uruchomi usługę zgodnie z harmonogramem za Ciebie.Gdzie znajdują się te pliki jednostek?
/etc/systemd/system/ dla jednostek ogólnosystemowych; po edycji uruchom systemctl daemon-reload.