내 Ubuntu 16.04에서 시스템 기본 파일을 이해하려고 합니다 /usr/lib/pm-utils/sleep.d/94cpufreq
(해당 내용은 이 문서의 끝 부분을 참조하세요).
"${PM_FUNCTIONS}"
그것이 어디에서 왔는지 때문에 스크립트 입니까 .
?
bash에 있으면 echo "${PM_FUNCTIONS}"
아무것도 출력되지 않습니다. PM_FUNCTIONS
이 스크립트를 호출하는 다른 스크립트에 정의되어 있습니까 ?
savestate
, state_exists
그리고 restorestate
함수는 "${PM_FUNCTIONS}"
?
변수 TEMPORARY_CPUFREQ_GOVERNOR"
는 "${PM_FUNCTIONS}"
?
suspend|hibernate
게다가 이 스크립트는 무엇을 하려고 하는 걸까요 thaw|resume
?
감사해요.
#!/bin/sh
# Ensure cpu governor is set to something sane.
# TODO: Which of the cpu governors is still insane? File bugs against
# those that are.
. "${PM_FUNCTIONS}"
[ -d /sys/devices/system/cpu/ ] || exit $NA
hibernate_cpufreq()
{
( cd /sys/devices/system/cpu/
for x in cpu[0-9]*; do
# if cpufreq is a symlink, it is handled by another cpu. Skip.
[ -L "$x/cpufreq" ] && continue
gov="$x/cpufreq/scaling_governor"
# if we do not have a scaling_governor file, skip.
[ -f "$gov" ] || continue
# if our temporary governor is not available, skip.
grep -q "$TEMPORARY_CPUFREQ_GOVERNOR" \
"$x/cpufreq/scaling_available_governors" || continue
savestate "${x}_governor" < "$gov"
echo "$TEMPORARY_CPUFREQ_GOVERNOR" > "$gov"
done )
}
thaw_cpufreq()
{
( cd /sys/devices/system/cpu/
for x in cpu[0-9]*/cpufreq/scaling_governor ; do
[ -f "$x" ] || continue
state_exists "${x%%/*}_governor" || continue
restorestate "${x%%/*}_governor" > "$x"
done )
}
case "$1" in
suspend|hibernate)
hibernate_cpufreq
;;
resume|thaw)
thaw_cpufreq
;;
*) exit $NA
;;
esac
답변1
함수 state_exists
등은 다음에 정의되어 있습니다./usr/lib/pm-utils/함수그리고 PM_FUNCTIONS
대본을 인용해/usr/lib/pm-utils/pm-functions. 예, TEMPORARY_CPUFREQ_GOVERNOR
에 정의되어 있습니다 PM_FUNCTIONS
.