구현하려고 하는데지연된 최대 절전 모드 장치. 저는 아치/안테르고스에 있어요.
>>> systemctl enable suspend-to-hibernate.service
Failed to enable unit ...to-hibernate.service: Invalid argument
systemd-analyze verify ...hibernate.service
빈 출력으로 응답합니다.
아치위키에서 유닛 파일을 직접 복사해서 SLEEPLENGTH를 1시간으로 변경했습니다. 이 문제를 어떻게 디버깅할 수 있나요? 좀 더 설명적인 오류 메시지를 표시하도록 시스템을 구축하려면 어떻게 해야 합니까?
최대 절전 모드 서비스 일시 중지
[Unit]
Description=Delayed hibernation trigger
Documentation=https://bbs.archlinux.org/viewtopic.php?pid=1420279#p1420279
Documentation=https://wiki.archlinux.org/index.php/Power_management
Conflicts=hibernate.target hybrid-sleep.target
Before=sleep.target
StopWhenUnneeded=true
[Service]
Type=oneshot
RemainAfterExit=yes
Environment="WAKEALARM=/sys/class/rtc/rtc0/wakealarm"
Environment="SLEEPLENGTH=+1hour"
ExecStart=-/usr/bin/sh -c 'echo -n "alarm set for "; date +%%s -d$SLEEPLENGTH | tee $WAKEALARM'
ExecStop=-/usr/bin/sh -c '\
alarm=$(cat $WAKEALARM); \
now=$(date +%%s); \
if [ -z "$alarm" ] || [ "$now" -ge "$alarm" ]; then \
echo "hibernate triggered"; \
systemctl hibernate; \
else \
echo "normal wakeup"; \
fi; \
echo 0 > $WAKEALARM; \
'
[Install]
WantedBy=sleep.target
답변1
Arch 위키 페이지에 나와 있듯이 파일은 /etc/systemd/system/
.systemd 에는 단위 파일을 찾을 수 있고 /etc/systemd/system/
시스템 관리자가 서비스 파일을 배치해야 하는 여러 디렉터리가 있습니다. 바라보다man systemd.unit
.
이러한 디렉터리에서 파일을 생성하거나 수정한 후에는 를 실행해야 합니다. systemctl daemon-reload
그러면 systemd가 해당 디렉터리에서 새 장치나 수정된 장치를 다시 확인하게 됩니다. 그래야만 새 서비스를 활성화하거나 시작할 수 있습니다.