Sé systemctl enable iptables es similar al comando chkconfig --level 5 iptables on , pero ambos no son exactamente iguales.
Usando systemctl , ¿cómo restringimos un servicio para que se inicie solo en un objetivo determinado como graphical.target?
Respuesta aceptada:
Eso es lo que WantedBy= y RequiredBy= directivas en systemd los archivos unitarios son para:
De man systemd.unit :
Buscado por=, Requerido por=
Esta opción se puede usar más de una vez, o se puede dar una lista de nombres de unidades separados por espacios. Se crea un enlace simbólico en el directorio .wants/ o .requires/ de cada una de las unidades enumeradas cuando systemctl enable instala esta unidad. Esto tiene el efecto de que se agrega una dependencia de tipo Wants=o Requires=de la unidad listada a la unidad actual. El resultado principal es que la unidad actual se iniciará cuando se inicie la unidad enumerada. Consulte la descripción de Wants=y Requires=en la sección [Unidad] para obtener más detalles.
Entonces, el enlace simbólico creado es lo que causa systemd para iniciar la unidad dada cuando se inicia el objetivo/la unidad.
Entonces, por ejemplo:
[Install]
WantedBy=graphical.target
Haría que la unidad solo se iniciara cuando graphical.target se ejecuta (si la unidad está habilitada).
Otro ejemplo:
[Install]
WantedBy=my-custom-target.target graphical.target
Haría que la unidad se iniciara cuando my-custom-target.target o graphical.target se ejecuta (si la unidad está habilitada).
Una última cosa a tener en cuenta, puede ser difícil restringir las cosas a un solo objetivo porque algunos objetivos dependen de otros. Por ejemplo, graphical.target Requires=multi-user.target , por lo que cuando graphical.target se inician todas las unidades desde multi-user.target también se inician. Solo tenga en cuenta que algunos objetivos se construyen encima de otros, y que los que se construyen encima obtendrán todo de los objetivos de los que dependen.