/etc/pm/suspend.d/
시스템이 정지되기 전에 (매우 짧은 시간 동안) 네트워크 액세스가 필요한 스크립트를 넣고 싶습니다 . 그러나 "001_something"이라는 스크립트를 사용해도 네트워크에 액세스할 /etc/pm/suspend.d/
수 없습니다 . /usr/lib/pm-utils/sleep.d/
스크립트가 실행되기 전에는 비활성화된 것으로 보입니다.
네트워크가 비활성화된 이유는 무엇입니까? 어떻게 활성화할 수 있나요?
게다가 /var/log
시스템 복원 후 정지된 부분의 파일을 덮어쓰는 것 같은데요?
다음은 다음에서 관찰됩니다 daemon.log
.
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> sleep requested (sleeping: no enabled: yes)·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> sleeping or disabling...·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): now unmanaged·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): device state change: activated -> unmanaged (reason 'sleeping') [100 10 37]·
Feb 7 22:09:04 zenbook NetworkManager[3606]: <info> (wlan0): deactivating device (reason 'sleeping') [37]·
저는 테스트용으로 Debian과 Gnome 3을 사용하고 있습니다.
편집: 이 질문은 pm-utils와 관련이 없습니다. 내가 아는 한 NetworkManager는 네트워킹을 비활성화합니다(nm-manager.c:do_sleep_wake에서). 이 문제를 해결하는 방법을 아직 모르겠습니다. 바라보다NetworkManager: 시스템을 절전 모드로 전환할 때 네트워킹 비활성화
답변1
1. 별난?
먼저 일시 중지가 제대로 작동하는지 확인하겠습니다. 단점 페이지를 확인하고 서스펜션이 제대로 작동하는지, 그리고 겉으로 보기엔 평범해 보이지 않는지 확인하세요.
2. 001_something 스크립트가 실행 가능합니까?
스크립트가 실행 가능한지 확인하세요 001_something
!
% chmod +x 001_something
3. 001_something 스크립트가 올바르게 보입니까?
스크립트가 pm-utils
예상대로 작동하는지 확인하세요.
샘플 스크립트
#!/bin/bash
case "$1" in
hibernate|suspend)
ACTION BEFORE SUSPEND/HIBERNATE
;;
thaw|resume)
ACTION AFTER RESUME
;;
*)
;;
esac
exit $?
노트:hibernate|suspend
Case/switch 문의 올바른 부분 에 네트워크를 사용하려는 시도를 넣고 있습니까 ?
4. .d 디렉토리의 파일이 제대로 작동합니까(/etc/pm/suspens.d/ 또는 /usr/lib/pm-utils/sleep.d/)?
001_something
다음으로, 스크립트가 작동하는지 알 수 있도록 파일의 문자열에 에코를 표시하여 스크립트가 실제로 올바르게 일시 중지/최대 절전 모드에 들어가고 있는지 확인합니다 .
echo "yup I'm working" > /tmp/pmck_`date +%Y-%T`.log
pmck_2013-16:08:11.log
그러면 다음과 같은 내용이 표시됩니다 /tmp
.
5./var/로그?
위와 같은 상황이라면.디디렉터리가 실행 중이면 디렉터리를 만들고 덮어썼다고 생각되는 파일을 아래의 다른 파일에 복사하여 001_something
최소한 로깅이 올바른지 확인할 수 있습니다. 이를 통해 무슨 일이 일어나고 있는지 더 깊이 이해할 수 있습니다./var/log/pm-suspend.log
/tmp
cp /var/log/pm-suspend.log /tmp/pmlg_`date +%Y-%T`.log
6. 수면고리의 수는?
후크 파일 이름을 00-something
대신에 변경할 수도 있나요 001_something
? 확실하지는 않지만 매뉴얼 페이지에 이러한 값이 나와 있습니다.
SLEEP HOOK ORDERING CONVENTION
00 - 49
User and most package supplied hooks. If a hook assumes that all of the usual services and userspace infrastructure
is still running, it should be here.
50 - 74
Service handling hooks. Hooks that start or stop a service belong in this range. At or before 50, hooks can assume
that all services are still enabled.
75 - 89
Module and non-core hardware handling. If a hook needs to load/unload a module, or if it needs to place non-video
hardware that would otherwise break suspend or hibernate into a safe state, it belongs in this range. At or before
75, hooks can assume all modules are still loaded.
90 - 99
Reserved for critical suspend hooks.
7. 인터넷 연결?
스크립트 에 다음을 추가합니다 001_something
.
TMP=/tmp/pmip_`date +%Y-%T`.log
# network status?
ip link show > $TMP
# dns working?
dig google.com +answer >> $TMP
# can we ping google?
ping -c 5 www.google.com >> $TMP
8. pm-utils, HAL 및 Wheezy에 버그가 있나요?
내가 우연히 만났어이 데비안 버그 보고서이것이 문제의 원인이 될 수 있는지 궁금합니다. 이 버그는 HAL 및 pm-utils의 문제를 설명합니다. HAL을 삭제하면 네트워크 문제가 해결되는 것 같습니다.
9. 더 자세한 pm-utils 디버깅
게다가이 링크Debian 관련 일시 중지/재개 문제에 대한 제안을 제공합니다. PM_DEBUG=true
파일에 변수를 설정하여 pm-utils 로깅을 늘리는 방법이 언급되어 있습니다 /usr/lib/pm-utils/pm-functions
.
발췌
pm-utils 디버깅 활성화
일시중단 및 재개된 프로세스의 로그는 /var/log/pm-suspens.log 파일에 있습니다. 기본적으로 여기에는 상당히 자세한 정보가 포함되어 있습니다. /usr/lib/pm-utils/pm-functions 파일 시작 부분에 import PM_DEBUG=true 행을 삽입하여 디버깅에 대한 추가 정보를 활성화할 수 있습니다.
아마도 이것은 pm-utils에서 무슨 일이 일어나고 있는지에 대해 좀 더 통찰력을 제공하는 데 도움이 될 수 있습니다!
10. ACPI는 이전에 네트워크를 종료했 pm-utils
습니까?
문제 pm-utils
가 acpi
. 노트북 덮개를 닫으면 acpi
이와 관련된 작업이 있는 이벤트가 트리거됩니다.
이벤트 파일
% more /etc/acpi/events/lm_lid
event=button[ /]lid
action=/etc/acpi/actions/lm_lid.sh %e
조치 문서
% more /etc/acpi/actions/lm_lid.sh
#! /bin/sh
test -f /usr/sbin/laptop_mode || exit 0
# lid button pressed/released event handler
/usr/sbin/laptop_mode auto
자세히 살펴보면 laptop_mode
이 도구가 여러 작업을 수행하는 역할을 담당하며 그 중 하나가 네트워크 장치의 상태를 관리한다는 것을 알 수 있습니다.
랩탑 모드는 /etc/laptop-mode/conf.d
다른 UNIX 도구와 유사한 디렉토리를 유지합니다. 이더넷 및 무선 네트워크 장비와 관련된 파일이 있습니다.
기본 구성에서. 파일, /etc/laptop-mode/laptop-mode.conf
은 더 자세한 메시지를 열 수 있는 기능입니다. 어쩌면 이것이 무슨 일이 일어나고 있는지에 대한 추가적인 단서를 제공할 수 있을까요?
VERBOSE_OUTPUT=1
OP의 피드백을 바탕으로 시도해 볼 위 사항을 요약합니다.
1:배터리 사용량과 노트북의 절전 LED에 관한 한 일시 중지 기능이 작동합니다. 그렇지 않으면 위의 웹 페이지가 답변을 찾는 데 어떻게 도움이 될지 알 수 없습니다.
2:이것은.
삼:대략 맞는 것 같습니다.
4:그 서류를 받았어요.
5:해당 로그 파일을 받았지만 도움이 되지 않습니다.
6:001을 00으로 바꾸면 아무런 차이가 없습니다.
7:이 섹션의 내용은 네트워크 연결만 테스트합니다. 내 질문에 명시된 대로 스크립트가 실행된 후에는 네트워크 연결이 없습니다. wlan0 장치가 다운되었습니다. 로그 파일:http://paste.debian.net/231760.
노트:dig를 설치하지 않았지만(paste.debian.net 로그에 오류 메시지가 표시됨) 분명히 네트워크에 액세스할 수 없습니다(위에서 언급한 대로). iwconfig, ip link show, ping 등의 출력을 확인하면 다운된 것을 알 수 있습니다.... Perl 스크립트가 문제의 스크립트입니다.
그런데 /usr/lib/pm-utils/bin/pm-action
upowerd의 첫 번째 줄이 실행되면 네트워크가 이미 다운되었습니다.
8:hal이 설치되어 있으므로 제거해도 아무 변화가 없습니다.