"on" 또는 "off"를 반환하는 방법: chkconfig --list grep httpd |

"on" 또는 "off"를 반환하는 방법: chkconfig --list grep httpd |

재부팅 시 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/S85httpdchkconfig 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

관련 정보