'Systemctl devre dışı bırak' kullanılmadan bir hizmet nasıl devre dışı bırakılır


12

Yalnızca başka bir hizmet başarısız olduğunda ( [Unit] OnFailure=foo) çalıştırmak istediğim bir hizmet var , ancak bu hizmetin ( foo) önyüklemede otomatik olarak başlatılmasını istemiyorum . Bir seçenek çalışıyor systemctl disable foo, ama başka bir yol arıyorum.

Arka plan: Bir işletim sistemi görüntüsü oluşturuyorum ve makineyi başlatmak, o komutu çalıştırmak ( systemctl disable foo) ve ardından görüntümün son halini bildirmeden önce kapatmak istemiyorum.

Yanıtlar:


4

Tüm hizmetler varsayılan olarak "devre dışıdır"; "etkinleştirme" etkinleştirilir.

Eğer foo.serviceözel bir hizmettir, o zaman açıkça (gibi bir şey tarafından çekilmiş sürece başlamış olmayacak OnFailure=siz "devre dışı" şey olmamalı direktifi) ve.


Peki daha önce foo etkinleştirilmedikçe temelde "bu işlevi ücretsiz olarak elde edersiniz"?
rogerdpack

26

systemctl enableiçindeki /etc/systemd/system/sistem bağlantılarını manipüle ederek çalışır (sistem artalan süreçleri için). Bir enablehizmette olduğunuzda, bölümdeki WantedBysatırlara bakar [Install]ve bu .wantsdizinlerdeki simgeleri bağlar .

systemctl disable tam tersini yapar.

Sadece bu sembolik bağlantıları kaldırabilirsiniz - bunu elle kullanmak tamamen eşdeğerdir systemctl disable.


Bu, henüz systemd tarafından çalıştırılmayan bir hizmet olacaktır (özeldir), bu yüzden bu ek sembollerden hiçbiri olmayacaktır. Bunların ilk önyüklemede oluşturulacağını tahmin ediyorum.
tshepang

3
@Tshepang, manuel olarak (veya bir komut dosyasında, elbette) etkinleştirmediğiniz sürece etkinleştirilmemelidir
derobert

1
Oh, otomatik olarak etkinleştirileceğini varsaydım (Debian paketleri yükleyerek beklediğim bir şey). Bunu bildiğim iyi oldu.
tshepang

3
@Tshepang, paketteki bir postinst betiği etkinleştirir. Ya da simgelerini pakete gönderirim, bunu yapıp yapmadığından emin değilim.
derobert

4

Sen kullanabilirsiniz systemctl start ServiceName.serviceve systemctl stop Service.Name.servicebaşlangıç ve sırasıyla bir hizmeti durdurmak için. Aksine systemctl enable ...ve systemctl disable ...makineyi yeniden ne zaman, başlangıç ve durdurma komutları yalnızca son geçerli oturum için, bu nedenle değişiklikler kaydedilir alışkanlık.

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.