[unit] 옵션 이후 systemd가 작동하지 않습니다

[unit] 옵션 이후 systemd가 작동하지 않습니다

myweb.service다음 파일이 있습니다

[Unit]
Description=myweb - A simple hello world program
After=bluetooth.service

[Service]
Type=simple
User=root
ExecStart=/usr/bin/docker run -p 2222:4343 manikanth/webapp
Restart=on-failure

[Install]
#WantedBy=multi-user.target

특별히 비활성화 bluetooth.service하고 확인했습니다. 그러나 서비스는 여전히 활성화되어 있습니다. 나는 이것이 때문일 것이라고 생각했기 WantedBy때문에 내 의견입니다. 문제는 여전히 존재합니다

안하는 올바른 방법은 무엇인가요?키우다예를 들어 종속 서비스가 활성화되지 않으면 bluetooth.service어떻게 되나요 ?

답변1

Requisite=이 옵션과 이 옵션을 찾고 있을 수도 있습니다 After=.

~에서매뉴얼 페이지

Requires=와 유사합니다. 그러나 여기에 나열된 셀이 아직 시작되지 않은 경우 시작되지 않으며 트랜잭션이 즉시 실패합니다.

Requires=이 경우 작동하지 않는 것은 bluetooth.service부팅할 때 시작 된다는 것입니다 myweb.service. Requisite=옵션이 시작을 시도하지 않지만 실패가 bluetooth.service표시됩니다 myweb.service.

답변2

myweb.service내 기억이 맞다면 시작 시에만 활성화하고, bluetooth.service그렇지 않으면 myweb.serbice. 이것이 맞다면 아래 답변을 읽어보시고, 그렇지 않다면 정정해주세요!

Requires당신 은 정말로 After. 유닛 파일 간의 종속성을 정렬하는 하이브만 사용 After하지만 Requires종속 유닛이 실패하면 역시 실패하도록 보장합니다. 따라서 Requires=bluetooth.service추가 myweb.service하고systemctl daemon-reload

관련 정보