"chkconfig --level 5 iptables on"과 같은 명령에 해당하는 systemctl은 무엇입니까?

"chkconfig --level 5 iptables on"과 같은 명령에 해당하는 systemctl은 무엇입니까?

나는 systemctl enable iptables그것이 command 와 유사하다는 것을 알고 있지만 chkconfig --level 5 iptables on둘이 정확히 동일하지는 않습니다.

를 사용하여 systemctl주어진 대상(예: graphic.target)에서만 서비스가 시작되도록 제한하는 방법은 무엇입니까?

답변1

단위 파일의 WantedBy=AND RequiredBy=지시문의 용도 는 다음과 같습니다.systemd

~에서man systemd.unit:

구함=, 필수=

이 옵션은 여러 번 사용하거나 공백으로 구분된 단위 이름 목록을 제공할 수 있습니다. 이 장치가 systemctl 활성화를 통해 설치되면 나열된 각 장치의 .wants/ 또는 .requires/ 디렉터리에 심볼릭 링크가 생성됩니다. 이는 나열된 장치의 Wants= 또는 Requires= 유형 종속성을 현재 장치에 추가하는 효과가 있습니다. 주요 결과는 나열된 장치가 시작될 때 현재 장치가 시작된다는 것입니다. 자세한 내용은 [Unit] 섹션에서 Wants= 및 Requires=에 대한 설명을 참조하세요.

따라서 생성된 심볼릭 링크는 systemd대상/유닛이 시작될 때 지정된 유닛을 시작하는 것입니다.


예를 들어:

[Install]
WantedBy=graphical.target

graphical.target장치가 런타임에만 시작되도록 합니다(장치가 활성화된 경우).


다른 예시:

[Install]
WantedBy=my-custom-target.target graphical.target

my-custom-target.target또는 실행 중일 때 장치가 시작되도록 합니다 graphical.target(장치가 활성화된 경우).


마지막으로 명심해야 할 점은 일부 목표는 다른 목표에 의존하기 때문에 단일 목표로 제한하는 것이 어려울 수 있다는 것입니다. 예를 들어 , 시작 graphical.target Requires=multi-user.target하면 모든 장치 도 시작됩니다. 일부 목표는 다른 목표 위에 구축되며, 그 위에 구축된 목표는 해당 목표의 모든 것을 가져옵니다.graphical.targetmulti-user.target

답변2

직접적으로 동등한 것은 없습니다 chkconfig --level 5 iptables on. 오래된 sysvinit의 관점에서 계속 생각하는 것은 무의미하고 혼란스럽습니다.systemd에는 런레벨 같은 것이 없습니다.

즉, 서비스의 [Install] 섹션에서 WantedBy=graphical.target을 사용하여 Graphical.target에 도달한 경우에만 서비스 관리자에게 iptables를 시작하도록 요청할 수 있습니다.

관련 정보