systemd [Install] 부분을 .path 파일에 넣어야 하나요, 아니면 .service 파일에 넣어야 하나요?

systemd [Install] 부분을 .path 파일에 넣어야 하나요, 아니면 .service 파일에 넣어야 하나요?

PathChanged새 소스 .jar 파일이 제출될 때 내 서비스를 재배포하도록 systemd를 구성하기 위해 서비스와 함께 작동하고 지시문을 사용하는 경로 파일이 있습니다 . 설치 부분은 서비스 파일이 아닌 PATH 파일에 있어야 한다는 내용을 읽었지만 이로 인해 "systemctl 활성화 MYAPP"이 불가능하다는 것을 알았습니다. 서버가 다시 시작될 때 설치가 .path 파일에만 있는 경우 내 응용 프로그램이 제대로 시작됩니까? 제가 알아야 할 다른 문제가 있습니까?

# myapp.path
[Unit]
Wants=myapp.service

[Path]
PathChanged=/srv/webapps/myapp/myapp.jar

[Install]
WantedBy=multi-user.target

답변1

그런 다음 [Install]에 부품을 넣으십시오 .myapp.pathsystemctl enable myapp.path

왜 들어가지 말아야 합니까 myapp.service?

[Install]해당 섹션을 넣으면 부팅 직후 myapp.service서비스가 시작됩니다 . multi-user.target당신은 아마 이것을 원하지 않을 것입니다. myapp.serviceTriggered 될 때만 시작 되기를 원합니다 myapp.path.

왜 들어가요 myapp.path?

myapp.path방아쇠 myapp.service. 그러므로 myapp.path무엇이든 하고 싶다면 시작해야 합니다. 시스템이 시작되자마자 해당 경로 모니터링을 시작하려면 설치 섹션을 추가하는 것이 해결책입니다.

왜 작동하지 않습니까 systemctl enable myapp?

확장자를 지정하지 않으면 .service확장자로 간주됩니다. .systemctl enable myappsystemctl enable myapp.service[Install]섹션이 존재하지 않기 때문에 활성화에 실패했습니다 myapp.service. systemctl enable myapp.path옳은 일입니다.

관련 정보