`/usr/lib/pm-utils/sleep.d/94cpufreq`는 무엇을 하려고 합니까?

`/usr/lib/pm-utils/sleep.d/94cpufreq`는 무엇을 하려고 합니까?

내 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.

관련 정보