Red Hat에서 특정 순서로 서비스를 시작하시겠습니까?

Red Hat에서 특정 순서로 서비스를 시작하시겠습니까?

"ExecStart=/usr/bin/java -jar"를 사용하는 여러 서비스가 있고 가능한 한 늦게(네트워크, 방화벽 및 로그인 서비스 이후) 시작되기를 원합니다.

"After" 및 "Requires"의 [Unit]에 다양한 종속성을 나열해 보았지만 아무 것도 하지 않는 것 같습니다. 시작 로그를 보면 모든 종속성보다 먼저 서비스가 시작됩니다.

나는 (예를 들어) 시도했다.

[Unit]
Description=My Service 01
Requires=network.target
After=systemd-user-sessions.service network.target

부팅 순서에서 crond가 마지막에 시작되는 것을 볼 수 있어서 시도해 보았습니다.

[Unit]
Description=My Service 02
After=crond.service

차이는 없습니다. 내 서비스는 크론드보다 오래 전에 시작되었습니다.

어떤 제안이 있으십니까? 내가 뭐 잘못 했어요? 상황은 Red Hat 7.2와 7.3에서도 동일합니다.

답변1

이것아치 위키 sysyemd 페이지이에 대한 몇 가지 통찰력은 다음과 같습니다.

Wants= 및 Requires=는 After=를 의미하지 않습니다. 즉, After=를 지정하지 않으면 두 장치가 병렬로 시작됩니다.

각 종속성에 대해 다음을 추가해야 할 수도 있습니다.둘 다a RequiresAfter이후에 시작하려는 각 단위:

[Unit] 
Description=My Service 02 
Requires=crond.service
After=crond.service

관련 정보