장치를 활성화할 수 없습니다: file log.service: 해당 파일 또는 디렉터리가 없습니다.

장치를 활성화할 수 없습니다: file log.service: 해당 파일 또는 디렉터리가 없습니다.

전원이 꺼지거나 정전되기 전에 녹음하고 싶습니다.

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.targetAfter=RequiresMountsFor=

관련 정보