Vorrei eseguire uno script ogni 30 minuti dopo l'avvio del sistema. So che puoi usare cron, ma non ho intenzione di usare questa funzione spesso, quindi mi piacerebbe provarla con systemd.
Finora ho trovato solo i timer monotoni che consentono di eseguire qualcosa una volta (almeno penso di sì). Come sarebbe il foo.timer
e [email protected]
nel caso volessi eseguire qualcosa ogni 30 minuti dall'avvio/avvio del sistema?
[email protetta]
[Unit]
Description=run foo
Wants=foo.timer
[Service]
User=%I
Type=simple
ExecStart=/bin/bash /home/user/script.sh
foo.timer
[Unit]
Description=run foo
[Timer]
where I am stuck... ???
Risposta accettata:
Devi creare due file:uno per il servizio, l'altro per il timer con lo stesso nome.
esempio:
/etc/systemd/system/test.service
[Unit]
Description=test job
[Service]
Type=oneshot
ExecStart=/bin/bash /tmp/1.sh
/etc/systemd/system/test.timer
[Unit]
Description=test
[Timer]
OnUnitActiveSec=10s
OnBootSec=10s
[Install]
WantedBy=timers.target
dopodiché ricarica il systemd usando il comando systemctl daemon-reload
e avvia il timer con systemctl start test.timer
o abilitarlo per impostazione predefinita (systemctl enable test.timer
).
testare il contenuto di 1.sh
#!/bin/bash
echo `date` >> /tmp/2
E comando per controllare tutti i timer disponibili:systemctl list-timers --all
Informazioni più dettagliate sulla pagina del progetto ed esempi sulla pagina di ArchLinux