Fedora가 자동으로 중단됩니다.

Fedora가 자동으로 중단됩니다.

저는 Fedora 13을 사용하고 있으며 자동 종료 및 다시 시작을 위해 다음 명령이 있습니다.

# shutdown -h/-r now 

마찬가지로, 일정 시간이 지난 후 시스템을 일시 중지 모드로 전환하려면 어떤 명령을 사용해야 합니까?

답변1

유닉스의 아이디어는 작업을 수행하는 도구와 이를 결합하는 쉘을 갖는 것입니다. 따라서 나중에 명령 실행과 일시중지 명령을 결합할 것입니다. Fedora에서 hang할 표준 명령이 무엇인지 모르겠습니다(여러 개가 있습니다). pm-suspendUbuntu에서는 일반적인 명령을 사용하겠습니다.

X초 후 일시중지:sleep X && pm-suspend

특정 시간에 일시 중지:echo pm-suspend | at HH:MM

답변2

pm-suspend유틸리티(다음에 포함됨)pm-utils패키지이며 컴퓨터에 이미 설치되어 있을 수 있음)은 컴퓨터를 일시 중지 모드로 전환하는 데 사용됩니다. 따라서 "즉시" 일시 중지하려면 다음을 실행할 수 있습니다(루트 또는 sudo 사용).

# pm-suspend

불행하게도 내가 아는 한 pm-suspension에는 시간 매개변수가 필요하지 않습니다. 그러나 시간 매개변수를 사용하여 래퍼 스크립트를 작성할 수 있습니다. $PATH 어딘가에 스크립트를 저장하고 chmod +x를 수행합니다. 그것을 "일시 중지"라고 부르지 마십시오. 간단한 것은 다음과 같습니다:

#!/bin/sh
#change this following line to wherever pm-suspend lives
suspend="/usr/sbin/pm-suspend"

#make sure we are root
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

if [ -z "$1" ]; then
    echo "mysuspend: time in seconds expected"
    exit 1;
elif [ "$1" = "now" ]; then
    echo "Suspending now!"
    wait="0"
else
    #make sure we get a number.
    echo "$1" | grep [a-zA-Z] > /dev/null
    if [ $? -ne 0 ]; then
        echo "Suspending in $1 seconds"
        wait="$1"
    else
        echo "mysuspend: time in seconds expected"
        exit 1
    fi
fi

sleep "$wait"
$suspend

경고하다: "나에게 적합하다"는 것 외에는 테스트해 본 적이 없습니다.

일시 중지 명령을 pm-suspens-hybrid로 변경하는 것을 고려할 수 있습니다. 그러면 일시 중지 중에 배터리가 소진될 경우를 대비해 최대 절전 모드 파일도 저장됩니다.

여러분이 관심을 가질 수 있거나 스크립트를 더욱 강력하게 만들 수 있는 다른 유틸리티로는 pm-hibernate, pm-is-supported가 있습니다.

답변3

편리한 pm-suspens 명령이 없고 20:30예를 들면 다음과 같습니다. (예를 들어 일시 중지(또는 깨우기)하려는 경우로 바꾸는 것도 tomorrow 1:00작동합니다)

sleep  $(($(date --date "20:30" +%s) - $(date +%s)))

&& 에코 메모리> /sys/power/state

이와 관련하여, 언제 깨어날지 기계에 알릴 수도 있습니다.

rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s)))

때로는 실패하므로 이것이 더 잘 작동합니다.

while sleep 1; do rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s))) && break; done 

최대 절전 모드로 변경하려면 두 명령 모두에 not을 사용하면 됩니다 disk. mem이 명령은 bash에서 실행됩니다. 보다 원시적인 쉘에서는 ``(백틱)을 대신 사용 $( )하고 .$$(( ))

관련 정보