나는 필요한 작업, 즉 시스템이 종료될 때 스크립트를 실행하는 시스템 서비스를 가지고 있습니다. 그러나 이것은 재부팅 시에도 실행되는데 이는 내가 원하는 것이 아닙니다.
서비스 파일은 다음과 같습니다.
[Unit]
Description=Shutdown script
Requires=network.target
Before=poweroff.target halt.target
DefaultDependencies=no
[Service]
Type=oneshot
TimeoutSec=5
RemainAfterExit=true
User=sysadm
Group=sysadm
ExecStart=/bin/true
ExecStop=/usr/bin/myscript.sh
[Install]
WantedBy=multi-user.target systemd-halt.service systemd-poweroff.service
종료시에만 작동하게 하는 방법이 있나요?
답변1
이것이 최선의 해결책인지는 확실하지 않지만 효과가 있는 것 같습니다.
나는 ExecStart
다음과 같이 줄을 바꿨다.이것답변:
ExecStop=/bin/bash -c 'systemctl list-jobs | grep -Eq 'reboot.target.*start' || /usr/bin/myscript.sh'