2015-05-05 14 views
6

Bir CentOs 7 dağıtımında bir bağlama sunucusunu otomatik olarak yüklemek için bir komut dosyası yazıyorum.Bir sistemd biriminin bir bash komut dosyasında etkin olup olmadığını sınama

systemctl status ile sıkışıp kaldım çünkü bir hata kodu üretmiyor (çünkü bir durum hata değil).

Ne istediğim, hizmetin başlatılıp başlatılmadığını kontrol etmektir (etkin). Bunu yapmanın en iyi ve verimli yolu nedir?

+0

'systemctl status' durumu döndürecek yapar -' systemctl durum openvpn @<> 'yaparken buldum olarak. Değerler "0" olduğunda ve "3" durdurulduğunda. Ancak, bu komut interaktif :(. Bu yüzden @lars önerdi 'systemctl is-active' gitmek için yol ve daha iyi @ -q' tarafından önerildiği gibi @ palswim –

cevap

25

bir hizmetin etkin olup olmadığını kontrol etmenin en iyi yolu systemctl is-active komutla geçerli:

Aslında
# systemctl start sshd 
# systemctl is-active sshd >/dev/null 2>&1 && echo YES || echo NO 
YES 
# systemctl stop sshd 
# systemctl is-active sshd >/dev/null 2>&1 && echo YES || echo NO 
NO 
+0

Teşekkürler, tam olarak ne aradığım oldu! Ben manuel olarak cevapsız görünüyor. ^^ ' – math

+0

iyi şeyler, teşekkür ederim! –

+9

Ayrıca '-q' anahtarını kullanabilirsiniz böylece çıkış yönlendirmek zorunda kalmazsınız:' systemctl -q is-active sshd' – palswim

İlgili konular