두 개의 인스턴스화된 시스템 서비스를 단일 단위로 제어할 수 있는 방법이 있습니까?

두 개의 인스턴스화된 시스템 서비스를 단일 단위로 제어할 수 있는 방법이 있습니까?

Fedora 15 상자에서 실행하려고 하는 몇 가지 Python 웹 서비스가 있습니다. 그들은 Paster에 의해 실행되고 있으며 시작할 때의 유일한 차이점은 그들이 읽는 구성 파일입니다.

이는 systemd의 인스턴스화된 서비스에 적합해 보이지만 단일 단위로 제어할 수 있기를 바랍니다. 두 서비스를 모두 요구하는 systemd 대상이 이에 접근하는 방법처럼 보입니다. 대상을 시작하면 두 서비스가 모두 시작되지만 대상을 중지하면 서비스가 계속 실행됩니다.

서비스 파일은 다음과 같습니다.

[Unit]
Description=AUI Instance on Port %i
After=syslog.target

[Service]
WorkingDirectory=/usr/local/share/aui
ExecStart=/opt/cogo/bin/paster serve --log-file=/var/log/aui/%i deploy-%i.ini        
Restart=always
RestartSec=2
User=aui
Group=aui

[Install]
WantedBy=multi-user.target

대상 파일은 다음과 같습니다.

[Unit]                    
Description=AUI           
[email protected]
[email protected]
After=syslog.target   

[Install]                 
WantedBy=multi-user.target

systemd에서도 이런 종류의 그룹화가 가능합니까?

답변1

BindsTo유닛을 함께 묶는 옵션을 사용하는 방법을 살펴보세요 . 매뉴얼 systemd.unit(5)페이지에서는 다음과 같이 설명합니다.

바인딩 대상=

Requires=와 스타일이 매우 유사한 요구 사항 종속성을 구성합니다. 그러나 이 동작 외에도 나열된 단위 중 하나가 갑자기 사라질 때 이 단위가 중지된다고 선언합니다. 서비스가 자체 선택에 따라 종료되거나, 장치의 플러그가 뽑히거나, systemd의 개입 없이 마운트 지점이 마운트 해제되면 유닛이 갑자기 예기치 않게 사라질 수 있습니다.

원하는 대로 작동하고 한 장치를 다른 장치에 연결하여 마스터가 멈출 때마다 슬레이브도 멈추고 그 반대의 경우도 시작되도록 해야 할 것 같습니다.

Before필요한 경우 /를 사용하여 After시작해야 하는 순서를 지정할 수도 있다는 것을 잊지 마십시오 .

관련 정보