Systemd를 사용하여 일시 중지 전후에 스크립트 실행

Systemd를 사용하여 일시 중지 전후에 스크립트 실행

내가 찾은이 블로그 게시물은 여기에 있습니다.systemd를 사용하여 일시 중단하기 전후에 스크립트를 실행하는 과정을 설명합니다. 다음과 같이 진행하세요:

  1. 스크립트 를 생성합니다 /usr/lib/systemd/system-sleep/suspend-date.sh:
#!/bin/sh
if [ "${1}" == "pre" ]; then
  # Do the thing you want before suspend here, e.g.:
  echo "we are suspending at $(date)..." > /tmp/systemd_suspend_test
elif [ "${1}" == "post" ]; then
  # Do the thing you want after resume here, e.g.:
  echo "...and we are back from $(date)" >> /tmp/systemd_suspend_test
fi
  1. 실행 권한을 제공합니다.
chomd +x /usr/lib/systemd/system-sleep/suspend-date.sh
  1. 컴퓨터를 일시 중지하다
  2. 컴퓨터를 깨워라
  3. 발생한 일에 대한 로그 보기
nano /tmp/systemd_suspend_test

하지만,5단계에 이르면 아무 일도 일어나지 않습니다. 파일 systemd_suspend_test이 생성된 적이 없으므로 볼 내용이 없습니다.

내 문제 해결 방법은 다음과 같습니다.

  • 스크립트에 적절한 권한이 있는지 확인하세요.
[/usr/lib/systemd/system-sleep]$ ls -l
-rwxr-xr-x 1 root root 317 Sep 19 14:31 suspend-date.sh
  • 터미널에서 명령을 실행하여 작동하는지 확인합니다.
echo "we are suspending at $(date)..." > /tmp/systemd_suspend_test && \
echo "...and we are back from $(date)" >> /tmp/systemd_suspend_test

/tmp/systemd_suspend_test파일을 봅니다 .

we are suspending at Wed 20 Sep 2023 02:25:28 PM EDT...
...and we are back from Wed 20 Sep 2023 02:25:28 PM EDT
  • 수면 시스템 다시 시작
$ sudo systemctl restart systemd-sleep
Failed to restart systemd-sleep.service: Unit systemd-sleep.service not found.

내 컴퓨터가 일시 중단 상태에 들어가고 나갈 때 suspend-date.sh스크립트를 시작(디렉토리에 있는 것처럼)하려면 어떻게 해야 합니까 /usr/lib/systemd/system-sleep/?

관련 정보