Varför konvertera TIMER till SERVICE?
I systemd är dessa två halvor av ett jobb: .timer anger när, och .SERVICE anger vad. Den realistiska uppgiften är alltså inte konvertering utan att skriva den matchande service-enheten som timern utlöser, antingen via matchande namn eller via direktivet Unit=.
Hur man konverterar TIMER till SERVICE
Valfri textredigerare FREE
Skapa en fil med samma basnamn, t.ex. backup.service bredvid backup.timer, och lägg till en [Service]-sektion med ExecStart= inställt på ditt kommando; timern utlöser den automatiskt via namnet.
systemctl edit FREE
Kör systemctl edit --full --force backup.service för att öppna en ny enhet i rätt katalog, definiera ExecStart=, kör sedan systemctl daemon-reload och aktivera timern.
Om dessa format
En .timer-fil är en systemd-enhet som schemalägger när en annan enhet (vanligtvis en matchande .service-fil) körs på Linux, och fungerar som en modern ersättare för cron. Det är en liten…
Öppna detaljer för .TIMER →En .SERVICE-fil är associerad med Mac OS X Service Application, en system-fil.
Öppna detaljer för .SERVICE →Kvalitet & vad man bör tänka på
- Som standard aktiverar
backup.timertjänstenbackup.service; användUnit=i timerns[Timer]-sektion endast om servicenamnet skiljer sig åt. - Tjänsten bör vanligtvis vara av typen
Type=oneshotför schemalagda uppgifter så att systemd hanterar varje körning som ett diskret jobb. - Efter att ha skapat eller ändrat enheten, kör
systemctl daemon-reload, annars kommer timern inte att hitta den nya tjänsten.
Vanliga frågor
Kan en timer köras utan en service?
.service-enhet som definierar kommandot.Hur vet timern vilken service den ska köra?
foo.timer kör foo.service), såvida du inte åsidosätter det med Unit= i timer-filen.Ska jag aktivera timern eller servicen?
.timer; systemd startar servicen åt dig enligt schemat.Var lagras dessa enhetsfiler?
/etc/systemd/system/ för systemövergripande enheter; kör systemctl daemon-reload efter redigering.