한 줄 필요: 이미 실행 중인 경우 httpd를 중지하고 그렇지 않은 경우 httpd를 시작합니다.

한 줄 필요: 이미 실행 중인 경우 httpd를 중지하고 그렇지 않은 경우 httpd를 시작합니다.

CentOS 7 구성 스크립트의 일부로한 줄다음을 수행합니다. 불행히도 나는 이것을 달성하는 방법을 모릅니다.

  • httpd가 실행 중이면 중지하십시오.
  • httpd가 실행되고 있지 않으면 httpd가 설치되어 있는지 확인하고 시작하십시오.
  • 이상적으로는 결과가 /log/httpd/에 기록됩니다.그리고/&호스트 이름/로그/httpd/

누구든지 도와줄 수 있나요?

답변1

CentOS7에는 거의 대부분의 작업을 수행하는 systemctl이 있습니다. Apache가 표준 패키지를 통해 설치된 경우 즉시 작동합니다.

echo -n $(date +"%s %F %T"): \
if systemctl is-active httpd; then \
    systemctl stop httpd && echo "httpd stopped"; \
elif systemctl enable httpd; then \
    systemctl start httpd && echo "httpd started"; \
else \
    echo "httpd not installed"; false;\
fi 2>&1 || echo "Failure: $?" | \
 tee -a /var/log/httpd/status.log /some/other/location/log/httpd/status.log

명확성을 위해 줄로 나누었습니다. 한 줄로 축소하려면 \ 및 개행 문자를 제거하세요. 로깅에 더 많은 세부 정보를 추가할 수 있습니다.

답변2

이것은 내 온라인 메시지입니다:

( if service httpd status; then echo 'stop'; service httpd stop; else echo 'check installed'; if ! rpm -qa | grep -q '^httpd-'; then echo 'install'; yum -y install httpd; fi; echo 'start'; service httpd start; fi ) &> /tmp/temp.log; cat /tmp/temp.log >> /log/httpd/some.log; cat /tmp/temp.log >> /&hostname/log/httpd/another.log; rm /tmp/temp.log

관련 정보