전원이 꺼지거나 정전되기 전에 녹음하고 싶습니다.
uname -a
Linux xxx 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
systemctl get-default
graphical.target
runlevel
N 5
내 스크립트를 편집하세요.
sudo vim /etc/systemd/system/graphical.target.wants/log.service
[Unit]
Description=Run command at shutdown
Before=shutdown.target reboot.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/bin/bash /home/log.sh
활성화하십시오.
sudo systemctl enable log.service
Failed to enable unit: File log.service: No such file or directory
어떻게 고치나요? 아래 설정에 문제가 있는 걸까요?
sudo cat /etc/systemd/system/log.service
[Unit]
Description=Run command at shutdown
After=shutdown.target reboot.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/bin/bash /home/log.sh
[Install]
WantedBy=graphical.target
활성화하는 데 sudo systemctl enable log.service
문제가 없습니다 .
왜 로그 정보가 없고 /home/log.sh
실행할 수 없나요?
답변1
이 디렉토리에 유닛을 생성 하면 안 됩니다 graphical.target.wants
. 이는 심볼릭 링크에 사용됩니다. 대신 디렉토리에 직접 생성하십시오 /etc/systemd/system
.
[Install]
또한 이 명령을 사용할 때 설치할 위치를 설명하는 섹션이 필요합니다 . systemctl enable
(귀하의 경우에는 를 사용할 수 있습니다 graphical.target
. multi-user.target
더 일반적인 옵션이고 의 종속성이므로 graphical.target
시작 시 가져옵니다.)
따라서 다음에서 작성하십시오 /etc/systemd/system/log.service
.
[Unit]
Description=...
[Service]
...
ExecStop=/bin/bash /home/log.sh
[Install]
WantedBy=multi-user.target
그런 다음 다음을 사용하여 활성화하십시오.
$ sudo systemctl enable log.service
그러면 이것이 작동할 것입니다.
종속성이 올바르지 않을 수 있습니다. 가지고 있지만 실행해야 하는 서비스의 종속성을 Before=shutdown.target reboot.target
사용해야 할 가능성이 높습니다.After=
앞으로그들은 차단되었습니다. 종속성은 종료 시 역순으로 작동하므로 이 절에 의존하는 항목을 나열하십시오(예: local-fs.target
, ). log.sh를 실행하려면 파일 시스템을 설치해야 하기 때문에 이 지침은 흥미로울 수도 있습니다.network.target
After=
RequiresMountsFor=