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