명령줄을 복제하거나 변경하지 않고 systemd ExecStart를 shim으로 래핑할 수 있습니까?

명령줄을 복제하거나 변경하지 않고 systemd ExecStart를 shim으로 래핑할 수 있습니까?

기존 시스템 서비스가 있다고 가정해 보겠습니다.

# /usr/lib/systemd/system/whatever.service
[Service]
ExecStart=/usr/bin/java -Dfoo=bar -Dbaz=qux -Xmeh=whatever -jar /path/to/whatever.jar arg1 arg2 ...

...플러그인을 사용하여 실행 중인 래퍼에 넣고 싶습니다.정확히 같은 명령, 하지만 먼저 잠금을 획득한 경우에만 해당됩니다. 내가 익숙한 방식은 기존 항목을 지우고 ExecStart다음을 반복하는 것입니다.

# /etc/systemd/system/whatever.service.d/needs-lock.conf
[Service]
ExecStart=
ExecStart=/usr/bin/with-lock lock-id /usr/bin/java -Dfoo=bar -Dbaz=qux -Xmeh=whatever -jar /path/to/whatever.jar arg1 arg2 ...

불행한 일입니다./usr/bin/with-lock lock-id정말 기존 서비스에 추가하고 싶습니다., needs-lock.conf업스트림 정의가 변경될 때마다 whatever.service내 것을 수정할 필요가 없습니다.

이를 달성할 수 있는 합리적인 방법이 있습니까?

관련 정보