시스템 서비스 ExecStartPre 라인에서 차단 명령을 처리하는 방법은 무엇입니까?

시스템 서비스 ExecStartPre 라인에서 차단 명령을 처리하는 방법은 무엇입니까?

내 백업 프로그램(btrbk)이 백업을 내 서버로 보내려면 먼저 VPN 연결을 열어야 합니다. 전화를 걸어 수동으로 VPN 연결을 여는 것이 효과적입니다.

openvpn --config VPNConfig.ovpn

이제 백업을 시작해야 하는 시스템 서비스(시스템 시간에 따라 매일 트리거됨)를 만들었습니다. 전제 조건으로 VPN에 연결되어 있어야 합니다.

ExecStartPre=openvpn --config VPNConfig.ovpn

서비스 파일의 줄. 불행하게도 이 openvpn 호출은 차단되어 실제 백업 프로세스가 수행되는 것을 차단합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다 :)

답변1

ExecStartPre=OpenVPN 연결을 위한 별도의 서비스를 생성해야 하며, 이를 사용하는 대신 Before=백업 서비스를 시작하도록 지정하고 필요에 따라 이를 활용해야 합니다.

백업을 위해 VPN 연결을 시작하려는 경우백업이 완료되면 중지합니다., VPN 서비스를 PartOf=백업 서비스로 선언할 수 있습니다.

백업이 완료된 후에도 VPN을 계속 실행할 수 있거나 실행해야 하는 경우 VPN 서비스를 RequiredBy=백업 서비스로 지정할 수 있습니다.

나중에 백업 VPN 솔루션을 변경해야 하는 경우 실제 백업 장치나 해당 타이머를 건드리지 않고 VPN 서비스 장치를 간단히 다시 작성하거나 교체할 수 있습니다.

그런 다음 VPN 서비스에서 공개 항목을 생략하므로 WantedBy=multi-user.target이를 시작하는 유일한 방법은 종속성 또는 명시적 명령을 통해서입니다 systemctl start.

애퍼처사이언스의 광고 슬로건을 적용하여,이제 단위에 대해 생각하고 있습니다.

관련 정보