Saya ingin menjalankan skrip setiap 30 menit setelah boot ke sistem. Saya tahu Anda dapat menggunakan cron, tetapi saya tidak berencana untuk sering menggunakan fitur ini karena itu saya ingin mencobanya dengan systemd.
Sejauh ini saya hanya menemukan pengatur waktu monoton yang memungkinkan untuk mengeksekusi sesuatu sekali (setidaknya menurut saya begitu). Bagaimana foo.timer
dan [email protected]
sepertinya saya ingin menjalankan sesuatu setiap 30 menit sejak boot/sistem dimulai?
[dilindungi email]
[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... ???
Jawaban yang Diterima:
Anda perlu membuat dua file:satu untuk layanan, lainnya untuk timer dengan nama yang sama.
contoh:
/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
setelah itu reload systemd menggunakan perintah systemctl daemon-reload
dan mulai penghitung waktu Anda dengan systemctl start test.timer
, atau aktifkan secara default (systemctl enable test.timer
).
menguji konten 1.sh
#!/bin/bash
echo `date` >> /tmp/2
Dan perintah untuk memeriksa semua pengatur waktu yang tersedia:systemctl list-timers --all
Info lebih detail di halaman proyek dan contoh di halaman ArchLinux