네트워킹이 시작되기 전에 실행해야 하는 시스템 서비스가 있는데 약간의 어려움을 겪고 있습니다. 이에 따르면: 네트워크가 가동된 후 서비스 실행나는 사용해야한다이전=network-pre.target, 그런데 서비스가 시작되지 않습니다.
종속성:
root@server:~# systemctl list-dependencies my-script --reverse
my-script.service
● └─network-pre.target (has a red dot next to it)
실제 장치 자체:
[Unit]
Description=My script
Before=network-pre.target
Wants=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
어떤 제안이 있으십니까?
답변1
만족할 수 없는 항목을 나열하므로 Wants= 행을 제거하십시오. network-pre.target 이전과 (Wants) 이후에도 서비스를 시작하십시오. 따라서 단위는 다음과 같이 읽어야 합니다.
[Unit]
Description=My script
Before=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
답변2
이것이 나를 위해 일한 것입니다.
[Unit]
Description=@CPACK_PACKAGE_DESCRIPTION_SUMMARY@
Before=network-pre.target
Wants=network-pre.target
DefaultDependencies=no
Requires=local-fs.target
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/sbin/my-script.sh
RemainAfterExit=yes
[Install]
WantedBy=network.target