재부팅 시 httpd가 자동으로 시작되는지 확인하세요. 난 그냥이 명령을 실행
chkconfig httpd on
내가 찾고 있는 것은 이 설정이 다음과 같은지 알려주는 방법입니다.
on or off
이 명령 대신
chkconfig --list | grep httpd
이것을 돌려줘
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
수준은 이해하지만 정말 필요한 것은
on or off
따라서 위와 같이 복잡한 것이 아니라 이를 스크립트에 연결하여 매일 무엇이 켜져 있고 꺼져 있는지 시각적으로 확인할 수 있습니다.
답변1
매뉴얼 페이지에서:
By default, the on and off options affect only runlevels 2, 3, 4, and
5, while reset and resetpriorities affects all of the runlevels. The
--level option may be used to specify which runlevels are affected.
awk
따라서 해당 레벨(2,3,4,5)만 추출하는 데 사용할 수 있습니다 .
chkconfig --list | grep httpd | awk '{ print $4 }' | cut -d ':' -f 2
$4
$5
( , $6
, ) 로 대체하여 $7
다른 레벨(3,4,5)에 대해서도 동일한 작업을 수행합니다.
답변2
chkconfig는 실제로 /etc/init.d에 일반적으로 있는 서비스 초기화 스크립트에 대한 심볼릭 링크를 배치합니다. 따라서 chkconfig의 출력을 파악하고 awk'ing하지 않고도 심볼릭 링크가 존재하는지 확인할 수 있습니다.
을 실행하면 init.d를 가리키는 chkconfig httpd on
링크가 생성됩니다 . 해당 링크를 제거하십시오(더 많은 작업을 수행할 수 있지만 여기서는 관련이 없습니다). 이는 배포판에 따라 달라질 수 있습니다./etc/rc3.d/S85httpd
chkconfig httpd off
따라서 bash에서는 이를 수행할 수 [ -f /etc/rc3.d/S85httpd ]
있으며 반환 값( $?
)이 0이면 링크가 존재하는 것입니다. 1이면 존재하지 않으므로 닫힙니다.
답변3
주어진 대답은 런레벨을 스크립트에 포함시키는 반면, 질문은 단일 "on" 또는 "off"를 묻는 것 같습니다. 이는 현재에 적용된다는 의미입니다.런레벨.
그리고 사실은 그럴 것 같다.chkconfig
무시된 주장을 취하면 중복됩니다 grep
.
또한 해당 형식은 일관성이 있어 항상 목록에서 켜기/끄기 항목 앞에 런레벨을 배치합니다. 열 수를 계산할 필요가 없습니다(이 솔루션을 사용하기 위해 수행해야 하는 작업에 이를 포함할 필요도 없습니다).
이를 염두에 두고 현재 실행 수준에서 특정 서비스마다 "on" 또는 "off"를 인쇄하는 스크립트는 다음과 같습니다.
#!/bin/sh
THIS=$(runlevel | sed -e 's/^. //')
for svc in "$@"
do
chkconfig --list $svc 2>/dev/null | sed -e 's/^.*'$THIS'://' -e 's/[[:space:]].*//'
done