기본적으로 유목민 클라이언트인 서비스가 있습니다. 최소한의 버전은 다음과 같습니다:
[Unit]
Description=Nomad Client
Documentation=https://nomadproject.io/docs/
After=network-online.target
[Service]
ExecStart=/usr/bin/nomad agent -config /etc/myapp/myconfig.json
[Install]
WantedBy=multi-user.target
이 서비스는 에 제공된 특정 구성을 사용하여 노마드 프로세스를 시작합니다 /etc/myapp/myconfig.json
.
내가 사용하고 있는 애플리케이션은 이 유목민 클라이언트를 중심으로 구축되었으며 구성 파일은 애플리케이션 수명 동안 언제든지 변경될 수 있습니다.
/etc/myapp/myconfig.json
디스크에 변경 사항이 발생할 때마다 서비스를 다시 시작하고 싶습니다.
답변1
당신은경로 단위.
이 질문에 답하기 위해 귀하의 서비스 단위가 이라고 가정하겠습니다 nomad.service
.
먼저 서비스를 nomad-restart.service
oneshot
다시 시작할 서비스를 만듭니다 nomad
. 다음 내용으로 /etc/systemd/system/nomad-restart.service를 생성합니다:
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart nomad.service
.path
다음으로, 특정 파일이 수정되었을 때 서비스를 활성화하기 위한 유닛이 필요합니다 . /etc/systemd/system/nomad-restart.path
다음 콘텐츠로 만듭니다.
[Path]
PathChanged=/etc/myapp/myconfig.json
[Install]
WantedBy=multi-user.target
경로 단위 시작 및 활성화:
systemctl enable --now nomad-restart.path
이제 지정된 경로가 변경될 때마다 서비스가 다시 시작됩니다. nomad-restart.path
지정된 파일이 수정되면 이 장치가 실행됩니다. 이렇게 하면 까지 활성화("시작"이라고도 함)되어
nomad-restart.service
호출된 systemctl restart nomad.service
다음 종료됩니다.