CentOS 7에서는 httpd 서비스가 런레벨 3과 5에서만 시작되기를 원하며, 다른 런레벨(예: 2와 4)에서는 서비스가 시작되지 않아야 합니다.
CentOS 6에서는 "chkconfig" 명령을 사용하여 이를 달성할 수 있습니다. CentOS 7 환경에서 유사한 솔루션을 찾고 있습니다.
답변1
런레벨 3과 5에서 HTTPD를 시작하고 런레벨 2와 4에서 HTTPD를 중지하고 싶다고 말씀하신 것을 확인했습니다. 이는 Init 및 SystemD에 대한 자세한 개요를 제공하는 Red Hat 매뉴얼의 URL입니다.
Red Hat 매뉴얼에는 multi-user.target이 런레벨 2, 3, 4와 동일하다고 명시되어 있습니다.
- 런레벨 0 = poweroff.target
- runlevel1=rescue.target
- runlevel2 = 다중 사용자.대상
- 런레벨 3 = multi-user.target
- 런레벨 4 = multi-user.target
- 런레벨 5 = Graphics.target
- 런레벨 6 = restart.target
이를 염두에 두고 런레벨 2, 3, 4 사이를 전환하려는 명령을 사용하는 것은 의미가 없는 것 같습니다. systemctl set-default multi-user.target
런레벨 2, 3, 4는 multi-user.target과 동의어이기 때문입니다.
systemctl cat httpd
이 명령을 사용하여 일부 구성 정보를 볼 수 있다는 점은 주목할 가치가 있습니다 . 귀하의 질문과 관련하여 이 명령은 multi-user.target으로 설정된 HTTPD를 표시합니다.
# systemctl cat httpd
. . .
[Install]
WantedBy=multi-user.target
이것이 귀하의 환경에 적합한지 잘 모르겠습니다. 요구 사항에 대한 가능한 해결책은 스크립트를 사용하여 시스템의 현재 실행 수준을 결정한 다음 일부 if 루프를 사용하여 대상을 기반으로 HTTPD 데몬을 시작하거나 중지하는 것입니다. 예를 들어, 스크립트는 다음과 비슷할 수 있습니다.
#!/bin/bash
target=`systemctl get-default`
if [ $target == "multi-user.target" ]
then
systemctl stop httpd
else
systemctl start httpd
fi