systemd에서 경로 활성화 및 대상 순서 지정 서비스 사용

systemd에서 경로 활성화 및 대상 순서 지정 서비스 사용

S1, S2,... S10중요한 서비스 C1이 초기화된 후에만 시작할 수 있는 여러 서비스(예: )가 있습니다 . C1은 /var/run/critical.init초기화가 완료되었음을 나타내는 파일(예: )에 씁니다 . 이 시점에서 각 서비스는 S1..S10systemd에 의해 시작되어야 합니다.

위의 구현을 시도할 때 .path시스템 기반 활성화를 사용하고 다음 S1에 대한 .path 파일이라는 두 개의 파일을 만들었습니다.

$ cat s1.path
[Path]
PathExists=/var/run/critical.init
Unit=s1.service

[Install]
WantedBy=multi-user.target


$ systemctl enable s1.path

그리고 서비스 자체를 설명하는 파일은 다음과 같습니다.

$ cat s1.service
[Unit]
Description=Some service
After=syslog.target

[Service]
ExecStart=/usr/bin/s1
Type=simple
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

systemctl status s1재부팅 후 장치가 활성화된 것으로 표시되는지 확인했습니다 S1.아니요ps -ef(예상대로) 출력의 열 . 파일을 수동으로 생성 한 직후 /var/run/critical.initsystemd가 장치를 시작했습니다 s1.

위의 실험을 통해 경로 기반 활성화가 단위에 대해 작동한다는 것을 확인했습니다. 이제 이것을 모든 서비스로 확장하고 싶습니다 S1...S10.

가장 확실한 방법은 .path서비스별로 파일을 작성하는 것이지만, 저는 좀 더 우아한 솔루션을 찾고 있습니다.

systemd를 사용하여 이 문제를 해결할 수 있습니까 target? 각 서비스가 의 일부 가 아닌 S1...S10새로운 의 일부인 경우 의 모든 단위가 트리거되기 전에 종속성이 존재하도록 설정할 수 있습니까 ? 다른 제안도 환영합니다.critical.targetmulti-user.target/var/log/critical.initcritical.target

관련 정보