Istnieje usługa, którą chcę uruchomić tylko wtedy, gdy inna usługa zawiedzie ( [Unit] OnFailure=foo
), ale nie chcę, aby ta usługa ( foo
) uruchamiała się automatycznie podczas rozruchu. Jedna opcja działa systemctl disable foo
, ale szukam innej drogi.
Tło: Tworzę obraz systemu operacyjnego i nie chcę uruchamiać komputera, uruchomić tę komendę ( systemctl disable foo
), a następnie zamknąć go przed ogłoszeniem ostatecznego obrazu.
systemctl enable
działa poprzez manipulowanie dowiązaniami symbolicznymi/etc/systemd/system/
(dla demonów systemowych). Gdy jesteśenable
usługą, patrzy naWantedBy
linie w[Install]
sekcji i plops dowiązania symboliczne w tych.wants
katalogach.systemctl disable
robi coś przeciwnego.Możesz po prostu usunąć te dowiązania symboliczne - zrobienie tego ręcznie jest w pełni równoznaczne z użyciem
systemctl disable
.źródło
Możesz użyć
systemctl start ServiceName.service
i,systemctl stop Service.Name.service
aby odpowiednio uruchomić i zatrzymać usługę. W przeciwieństwie dosystemctl enable ...
isystemctl disable ...
, polecenia start i stop działają tylko dla bieżącej sesji, dlatego po ponownym uruchomieniu komputera zmiany nie zostaną zapisane.źródło