Systemd 서비스는 두 프로세스 중 하나만 시작하지만 OS 재부팅 시에만 시작됩니다.

Systemd 서비스는 두 프로세스 중 하나만 시작하지만 OS 재부팅 시에만 시작됩니다.

나는 두 개의 완전히 별개의 프로세스인 apache와 tomcat을 시작하는 systemd 단위 파일을 가지고 있습니다(그리고 이에 대해 설명하기 전에 두 개의 별도 단위 파일을 만들어야 한다는 것을 알고 있지만 이 서버에 대한 권한은 단단히 잠겨 있습니다). SSH 세션을 통해 서비스를 시작하면 모든 것이 정상적으로 시작되고 중지됩니다. 그러나 서버가 재부팅되면 Apache만 백업이 시작되고 systemd는 모든 것이 정상이라고 주장합니다. Tomcat 로그를 확인하면 시작된 것처럼 보이지만 어느 시점에서 프로세스가 종료됩니다.

이러한 행동 차이의 원인은 무엇입니까? 이 서비스를 시작하기 전에 다른 것을 기다려야 합니까?

유닛 파일:

[Unit]
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/home/opiusr/appstart.sh
ExecStop=/home/opiusr/appstop.sh

[Install]
WantedBy=multi-user.target

두 스크립트 모두 다음과 같은 내용을 포함하는 래퍼입니다.

/bin/su - opiusr -c "/home/opiusr/bin/start_tomcat -s" >> $LOG_FILE
/bin/su - opiusr -c "/home/opiusr/bin/start_apache -s" >> $LOG_FILE

그리고 해당 스크립트는 추가 로깅을 통해 Tomcat과 Apache 시작 및 중지 스크립트를 간단히 래핑합니다.

편집: 나는 매우 유사한 이 답변을 보았습니다. Systemd는 시작 직후 서비스를 종료합니다.

시스템이 꽤 잠겨 있는 걸 보니 제가 다른 일을 할 수 있을지 궁금합니다. 나는 유닛 파일과 두 스크립트에 대한 전체 편집 액세스 권한을 갖고 있지만 새로운 서비스를 생성하거나 시스템 디렉토리를 터치하는 기능은 없습니다.

관련 정보