컴퓨터가 메모리 정지 상태에서 깨어날 때 화면을 잠가야 합니다.
그래서 다음 스크립트를 넣어보았 /usr/lib/pm-utils/sleep.d
으나 /etc/pm/sleep.d
실행되지 않았습니다.
#!/bin/sh
case "$1" in
hibernate|suspend)
;;
thaw|resume)
vlock -ans
;;
*) exit $NA
;;
esac
PS 이것은 pm-suspend
사실이 아닙니다 pm-hibernate
.
편집하다
또한 성공하지 못한 채 systemd 서비스를 시도했습니다.
# /etc/systemd/system/[email protected]
[Unit]
Description=User resume actions
After=suspend.target
[Service]
User=root
Type=simple
ExecStart=vlock -ans
[Install]
WantedBy=suspend.target
저도 전화했는데 vlock은 아직 전화를 안받았어요.systemctl enable [email protected]
답변1
AFAIK는 ExecStart
실행 파일의 전체 경로를 원합니다.
ExecStart=/usr/bin/vlock -ans
당신의 시도/etc/systemd/system/[email protected]
답변2
권한과 소유자를 다음으로 설정하셨나요?Wikipedia에 설명이 있나요?
스크립트가 실행 가능하고(chmod 755) root:root가 소유하고 있는지 확인하세요.
답변3
당신은 자신만의 후크를 만들려고 노력하고 있는 거죠, 그렇죠? pm-utils(아래 링크)에서 Arch Linux 문서를 읽고 있는데 다음 사항을 먼저 확인하겠습니다.
- 스크립트 이름(두 자리 숫자로 시작, 문서의 구성표를 따릅니다)
- 스크립트 위치: /etc/pm/sleep.d가 올바른 위치입니다.
- 스크립트 모드: chmod +x /etc/pm/sleep.d/66scriptname
이 모든 것이 정확하다고 확신한다면 스크립트 자체에 대해 생각해 보십시오.
이에 대해 내가 읽고 있는 문서에 대한 링크는 다음과 같습니다. https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks
귀하의 스크립트는 거기에 표시된 것과 다릅니다. /bin/bash 대신 /bin/sh를 호출합니다. $1 주위에 큰따옴표를 사용하지만 그렇지 않습니다. 옵션을 결합했지만 그렇지 않았습니다. 이들 모두~해야 한다괜찮으세요? sh와 bash를 제외하고.
좀 넣어보는 건 어때?기록계또는 echo 문을 사용하여 디버깅한 다음 로그를 확인하여 스크립트가 시작 중인지 확인하세요. 그렇다면 어느 정도 진행되었나요?
답변4
다음을 수행하여 모든 디렉토리를 찾았습니다. "sudo strace pm-hibernate 2>/root/myfile.log"
또는 pm-hibernate를 pm-suspension으로 바꿀 수 있습니다. 잠시 후 기계의 전원이 꺼집니다. 그런 다음 다시 시작/복원할 때 액세스/작성된 모든 스크립트, 구성, 로그 파일이 포함된 myfile.log를 읽으십시오.
내 Fedora 20의 경우 다음과 같습니다.
/usr/lib64/pm-utils/pm-functions
/usr/lib64/pm-utils/defaults
/usr/lib64/pm-utils/module.d
/etc/pm/config.d
/etc/pm/pm-suspend.config.d
/var/run/pm-utils/locks/pm-suspsnd.lock
/var/run/pm-utils/pm-suspend/storage/parameters
등등 및 기타 여러 디렉토리.
특정 버전의 특정 배포판을 사용하도록 도와주세요(Btw, Fedora 20은 systemd를 사용함).