systemd - Anakron davranışını taklit eden zamanlayıcı birimleri


13

Sık sık çevrilmiş bir makine için bir zamanlayıcı birimi yazmam gerekiyor (örn. Klasik masaüstü kurulumu). Bu zamanlayıcı ünitesinin düzenli olarak etkinleştirilmesi gerekir ancak çok sık olmamalıdır (örneğin haftalık, aylık).

Bazı yaklaşımlar buldum ama hepsi gerçekten uymuyor:

  • Man sayfalarına göre , yapılandırılan zaman noktası geçmişte ise sadece OnBootSecve OnStartupSecdirektifleri etkinleştirilecektir. OnActiveSecDüzenli bir olay tanımlamak için bunların bir kombinasyonunu kullanan bazı örnekler de buldum . Sorun şudur: Makine her başlatıldığında zamanlayıcı yapılandırılan birimi etkinleştirecektir. Eğer bir haftada / ayda çok sık çalıştırılması gereken bir zamanlayıcı varsa. Örneğin: Günlüklerimin günde üç kez döndürülmesini istemiyorum ...

  • OnCalendarYönerge ile çözümler . Makine zaman içinde yapılandırılan noktada kapatılırsa (çoğunlukla saat belirtiminde saati atlarsanız varsayılan olarak 00:00:00 olarak ayarlanırsa) bir sonraki önyüklemeden sonra zamanlayıcı etkinleştirilmez. En azından ben böyle anladım. Bu doğru mu ?

Yani şu soru geliyor:
Yapılandırılmış zaman geçmişte ise takvim olaylarıyla zamanlayıcı bir sonraki açılıştan hemen sonra etkinleştirilir mi?
Değilse: Böyle bir davranışı elde etmek için bir geçici çözüm var mı?


Tamam, farkındayım bu . Hala gidilecek yol var mı? Yoksa daha şık çözümler var mı? Mevcut durumu iyileştirmek için planlanan bir şey var mı?
mmh

Yanıtlar:


15

Bu özellik yönerge kullanılarak sistemd'de (ver> = 212) zaten uygulanmış olduğundan, işi çalıştırmak için tarih / saat oluşturmak için direktif kullanırken ünite dosyasına Persistent=eklemeniz yeterlidir .Persistent=trueOnCalendar=

Kalıcı =

Bir boole argümanı alır. True olursa, servis biriminin en son tetiklendiği zaman diskte saklanır. Zamanlayıcı etkinleştirildiğinde, zamanlayıcı etkin olmadığında en az bir kez tetiklenirse, servis ünitesi hemen tetiklenir. Bu, makine kapalıyken hizmetin kaçırılan çalışmalarını yakalamak için kullanışlıdır. Bu ayarın yalnızca OnCalendar = ile yapılandırılan zamanlayıcılar üzerinde bir etkisi olduğunu unutmayın.


Tam tersi değil mi? OP hem sahip olmaktan kaynaklanan ekstra ishal ortadan kaldırarak sorar OnBootSecve OnActiveSec. Persistentnedeniyle en az bir çalışma kaçırılırsa önyükleme bir kez çalıştırmak için?
x-yuri

Eh, muhtemelen demek bu şekilde .
x-yuri

0

Systemd-devel posta listesindeki bu e-postaya göre , istenen davranış yol haritasındadır ve gelecekte eklenecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.