systemd 잘못된 인수 - 지연된 최대 절전 모드 서비스 파일 디버그

systemd 잘못된 인수 - 지연된 최대 절전 모드 서비스 파일 디버그

구현하려고 하는데지연된 최대 절전 모드 장치. 저는 아치/안테르고스에 있어요.

>>> 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가 해당 디렉터리에서 새 장치나 수정된 ​​장치를 다시 확인하게 됩니다. 그래야만 새 서비스를 활성화하거나 시작할 수 있습니다.

관련 정보