Conosco systemctl enable iptables è simile al comando chkconfig --level 5 iptables on , ma entrambi non sono esattamente uguali.
Usando systemctl , come limitiamo l'avvio di un servizio solo su un determinato target come graphical.target.
Risposta accettata:
Questo è ciò che il WantedBy= e RequiredBy= direttive in systemd i file unit sono per:
Da man systemd.unit :
WantedBy=, RichiestoBy=
Questa opzione può essere utilizzata più di una volta, oppure può essere fornito un elenco di nomi di unità separati da spazi. Viene creato un collegamento simbolico nella directory .want/ o .requires/ di ciascuna delle unità elencate quando questa unità viene installata da systemctl enable. Ciò ha l'effetto di aggiungere una dipendenza di tipo Wants=o Requires=dall'unità elencata all'unità corrente. Il risultato principale è che l'unità corrente verrà avviata all'avvio dell'unità elencata. Vedi la descrizione di Wants=e Requires=nella sezione [Unità] per i dettagli.
Quindi il collegamento simbolico creato è ciò che causa systemd per avviare l'unità data quando viene avviato il target/unità.
Quindi ad esempio:
[Install]
WantedBy=graphical.target
Farebbe sì che l'unità venga avviata solo quando graphical.target è in esecuzione (se l'unità è abilitata).
Un altro esempio:
[Install]
WantedBy=my-custom-target.target graphical.target
Farebbe avviare l'unità quando my-custom-target.target o graphical.target è in esecuzione (se l'unità è abilitata).
Un'ultima cosa da tenere a mente, può essere difficile limitare le cose a un singolo obiettivo perché alcuni obiettivi dipendono da altri. Ad esempio, graphical.target Requires=multi-user.target , quindi quando graphical.target viene avviato tutte le unità da multi-user.target vengono anche avviati. Tieni solo a mente che alcuni obiettivi sono costruiti sopra altri e che quelli costruiti sopra otterranno tutto dagli obiettivi da cui dipendono.