RestartSec, yalnızca belirli bir hizmetin systemctl restart komutu ile yeniden başlatıldığı durumlarda kullanıldığı görülmektedir.
Örneğin, A ve B olmak üzere iki hizmetim var.
[Unit]
Requires=network-online.target
[Service]
ExecStart=A-stuff
Restart=always
ve
[Unit]
Requires=A.service
After=A.service
[Service]
ExecStart=B-stuff
Restart=always
RestartSec=30
Bir sistemctl yeniden başlatma B yaparsanız, beklendiği gibi çalışır ... ancak bir systemctl yeniden başlatma A yaparsanız, her iki hizmet de durdurulur ve gecikme olmadan hemen yeniden başlatılır.
Görünüşe göre Systemd, yalnızca belirttiğiniz bir hizmetin yapılandırma değerlerini kullanıyor ve bunları bağımlılıklar için yok sayıyor.
Bu göründüğü kadar nadir değildir. B uzak bir sunucuyla konuşursa, uzak ucun istemciyi reddetmesi nedeniyle hızlı başlatma ve durdurma başarısız olabilir. Ancak A'nın yeniden başlatılması, A, B'de değişiklik yapılmadan güncellendiğinde gerçekleşir.
Muhtemelen A'ya gecikme ekleyerek bu sorunu çözebilirsiniz, ancak bunu yapmanız GEREKMEMELİDİR, çünkü bağımlılık olmadığında A'yı B hakkında bilgi vererek nesne izolasyonunu bozar.
systemctl stop myservice && sleep 3 && systemctl start myservice