원격 서버에 배포해야 하는 애플리케이션에 대한 빌드 스크립트를 만들려고 합니다. 스크립트는 실행 중인 Tomcat 인스턴스를 종료하고 일부 작업(파일 복사/이동)을 수행하고 Tomcat 인스턴스를 다시 시작한 다음 두 번째 노드에서 프로세스를 반복해야 합니다.
개별 단계는 매우 간단합니다. 내가 직면한 어려움은 시간을 통제하는 것입니다. 스크립트가 파일 이동을 시작하기 전에 Tomcat 애플리케이션 서버가 종료되었는지 확인하고 싶습니다. 또한 두 번째 인스턴스에서 종료를 시작하기 전에 서버 시작이 완료되었는지 확인하고 싶습니다.
수동으로 "대기" 타이머를 설정하는 것 외에 쉘 스크립트에서 이를 수행할 수 있는 방법이 있습니까?
답변1
systemctl
서비스 상태를 쿼리하는 데 사용할 수 있습니다 .
systemctl is-active tomcat.service
~에서수동
활성 모드에서...
지정된 장치 중 활성 상태(즉, 실행 중)가 있는지 확인합니다. 하나라도 활성화되어 있으면 종료 코드 0을 반환하고, 그렇지 않으면 0이 아닌 값을 반환합니다. --quiet를 지정하지 않으면 현재 장치 상태도 표준 출력으로 인쇄됩니다.
동일한 매뉴얼에는 systemctl status <unit>
종료 상태에 명시적으로 의존하는 것이 "불완전"한 것으로 간주된다는 내용이 명시되어 있습니다.