Networking.service 실행이 시작되기 전에 시작뿐 아니라 실행을 완료하려는 일회성 서비스가 있습니다. 매뉴얼 페이지를 읽고 이것이 충분할 것이라고 생각했습니다.
[Unit]
Description=mypre networking service
Before=networking.service
Requires=networking.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/configuremodem.bash
TimeoutStartSec=1min
[Install]
WantedBy=multi-user.target network-online.target
서비스는 약 20초 정도 소요되며, 시스템에 로그인하여 상태를 확인해 보니 여전히 실행 중입니다. systemd-analyze를 사용하여 중요 경로를 확인한 후 서비스가 network.service보다 먼저 시작되었지만 systemd가 완료될 때까지 기다리지 않는 것을 볼 수 있습니다. 제 생각에는 이것이 매뉴얼 페이지를 읽는 것의 핵심입니다. 또한 다음을 변경하여 원하는 결과를 얻었습니다.
ExecStartPre=/usr/local/bin/configuremodem.bash
ExecStart=/bin/echo done
Pre가 종료될 때까지 ExecStart가 실행되지 않는다는 것을 읽었습니다. 이를 달성하는 더 좋은 방법이 있습니까?
감사해요!