Hallo, ich habe schon in einem anderen Thread mit meinen Problemen zum automatischen Aufwecken und Abschalten von MythTV gefragt und auch Hilfe bekommen. DANKE dafür. Ich habe die Ganze Sache auch zum Laufen bekommen. Ich habe das Wake up nach dieser Anleitung zum Laufen gebracht :http://www.mythtv.org/wiki/ACPI_Wakeup In MythTV eingebunden habe ich das dann in Verbindung mit Mythwelcome. Soweit so gut. Wenn ich die Anleitung aus dem MythTV Wiki zum manuellen Testen nachkoche, fährt der Rechner auch richtig runter mit
sudo shutdown -P now
. Soll heissen alles ist ausgeschaltet. Nur ein Standylämpchen am PC leuchtet. Wenn ich Mythwelcome / Mythshutdown den Job überlasse, wird der Rechner zwar runtergefahren, das Netzteil aber bleibt an. Ich möchte aber dass soviel wie möglich ausgeschaltet wird. Ich habe mal in Mythshutdown geschaut.
dort taucht ein shutdown -r now auf. Ziemlich weit unten. Ich habe das markiert.
Kann ich mythshutdown beibringen, ein shutdown -P now zu machen? Reicht es das -r einfach in ein -P zu ändern?
Eine Sache ist mir auch noch aufgefallen, man soll in Mythwelcome die Einstellungen für nvram wake up rausnehmen, mein MythTV weigert sich aber standhaft. Nach jedem Start stehen die Sachen wieder drin. Liegt das an dem Parameter
-shutdown (shutdown set nvram-wakeup and shutdown)" ?
#!/bin/bash # shutdown and wakeup script for mythbackend # by Jan Doelle (tuxnewbie) rev 0.4 28.07.2004 NAME="mythshutdown" USER="mythtv" GROUP="video" #set this option if your bios not support date #WAKEUP_DAILY="07:00" CONFIG_FILE=/etc/mythshutdown.conf BEEP=/usr/bin/beep MYTH_LOG_FOLDER=/var/log/mythtv MYTH_TMP_FOLDER=/var/mythtv MYTH_LOG_FILE=$MYTH_LOG_FOLDER/mythshutdown.log NVRAMCMD=/usr/bin/nvram-wakeup #NVRAMCFG=/etc/nvram-wakeup.a7n8x-x # avoid using default nvram-wakeup.conf delieved by nvram-wakeup package MYTH_SCHEDULE_TIME_FILE=$MYTH_TMP_FOLDER/myth-schedule-time # contains time when mythbackend wants start up to record MYTH_SCHEDULE_VRWU_FILE=$MYTH_TMP_FOLDER/myth-schedule-vrwu # contains time when system will wakeup next MYTH_SCHEDULE_FLAG_FILE=$MYTH_TMP_FOLDER/myth-schedule-flag # flag file will create be MYTH_SHUTDOWN_LOCK_FILE=$MYTH_TMP_FOLDER/myth-shutdown-lock # if exists mythshudown --check will return 1 reset idle count #prepare tmp folder mkdir -p $MYTH_TMP_FOLDER chown -R $USER $MYTH_TMP_FOLDER # # log function # log () { stamp=$(date +"[%m-%d-%Y %H:%M:%S]") echo "$stamp $1" >> $MYTH_LOG_FILE #debug echo "$stamp $1" } # # Overwrite Default Settings # if [ -e $CONFIG_FILE ]; then . $CONFIG_FILE fi # # check nvram-wakeup exists # #test -x $NVRAMCMD || exit 1 EXITSTATUS=1 case "$1" in --lock) log "lock shutdown" if [ ! -f $MYTH_SHUTDOWN_LOCK_FILE ]; then #cat /dev/null > $MYTH_SHUTDOWN_LOCK_FILE touch $MYTH_SHUTDOWN_LOCK_FILE chmod a+rw-x $MYTH_SHUTDOWN_LOCK_FILE chown $USER $MYTH_SHUTDOWN_LOCK_FILE chgrp $GROUP $MYTH_SHUTDOWN_LOCK_FILE if [ -x $BEEP ]; then $BEEP -f 261.6 -l 200 fi else log "allready locked" fi EXITSTATUS=0 ;; --unlock) log "unlock shutdown" if [ -f $MYTH_SHUTDOWN_LOCK_FILE ]; then rm $MYTH_SHUTDOWN_LOCK_FILE if [ $? != 0 ]; then log "unable to unlock shutdown" fi if [ -x $BEEP ]; then $BEEP -f 523.2 -l 200 fi else log "wasn't locked" fi EXITSTATUS=0 ;; --check) log "check shutdown" # mythbackend wants 0=ok shutdown, 1=reset idlecount, 2=wait for frontend if [ -f $MYTH_SHUTDOWN_LOCK_FILE ]; then # echo "Locked" log "shutdown is locked" EXITSTATUS=1 else echo "Unlocked" #check for PC's in network (no mythtv) #if ( ! /bin/ping -c 1 -I eth0 192.168.70.21 >/dev/null \ # && grep -q "192.168.70.21 " /proc/net/arp \ # ) then EXITSTATUS=0 log "free to shutdown" #else # log "another PC in Network found" # EXITSTATUS=0 #fi fi ;; --setwakeup) log "set wakeup time. given is time = $time or ($2) and third param: $3" WAKEUPTIME=$(date --date="$2 $3" +"%R %F") log "wakeup time is: $WAKEUPTIME" if [ $? = 0 ]; then echo "$WAKEUPTIME" > $MYTH_SCHEDULE_TIME_FILE if [ $? = 0 ]; then chmod a+rw-x $MYTH_SCHEDULE_TIME_FILE chown $USER $MYTH_SCHEDULE_TIME_FILE chgrp $GROUP $MYTH_SCHEDULE_TIME_FILE else log "writing $MYTH_SCHEDULE_TIME_FILE failed" fi echo "$WAKEUPTIME" > $MYTH_SCHEDULE_FLAG_FILE if [ $? = 0 ]; then chmod a+rw-x $MYTH_SCHEDULE_FLAG_FILE chown $USER $MYTH_SCHEDULE_FLAG_FILE chgrp $GROUP $MYTH_SCHEDULE_FLAG_FILE else log "writing $MYTH_SCHEDULE_FLAG_FILE failed" fi EXITSTATUS=0 else # error in format log "--setwakeup: invalid date format ($2 $3) must be hh:mm yyyy-MM-dd" EXITSTATUS=1 fi # echo "WAKEUPTIME: $WAKEUPTIME $?" ;; --shutdown) log "shutdown" # now the horror starts # check #NVWAKEUPTIME=0 # current time TSNOW=$(date +%s) # daily wakeup time if [ -n "$WAKEUP_DAILY" ]; then TSDAY=$(date -d "$WAKEUP_DAILY" +%s) if [ "$TSDAY" -gt "$TSNOW" ]; then log "daily wakeup today at $WAKEUP_DAILY" else # next daily is tommorrow log "daily wakeup tomorrow at $WAKEUP_DAILY" TSDAY=$(( $TSDAY + (24*60*60) )) fi if [ "$TSDAY" -lt $(($TSNOW + 15*60)) ]; then # forward daily 15 minutes (avoid to short time for wakeup shedule) log "daily wakeup delayed about 15 minutes" TSDAY=$(($TSDAY + 15*60)) fi fi # check schedule if [ -f $MYTH_SCHEDULE_FLAG_FILE ]; then # a wakeup was scheduled if [ -f $MYTH_SCHEDULE_TIME_FILE ]; then WAKEUPTIME=$(cat $MYTH_SCHEDULE_TIME_FILE) # | awk '{print $1}') log "wakeup scheduled at: $WAKEUPTIME" TSWKU=$(date -d "$WAKEUPTIME" +%s) TSDELTA=$(($TSWKU-$TSNOW)) if [ "$TSDELTA" -lt "0" ] ; then log "schedules in pass. schedule deleted" rm $MYTH_SCHEDULE_TIME_FILE log "wakeup at daily wakeup time $WAKEUP_DAILY ($TSDAY)" NVWAKEUPTIME=$TSDAY elif [ "$TSWKU" -lt "0$TSDAY" ]; then log "wakeup at scheduled time $WAKEUPTIME ($TSWKU)" NVWAKEUPTIME=$TSWKU elif [ -n "$TSDAY" ]; then log "wakeup at daily wakeup time $WAKEUP_DAILY ($TSDAY)" NVWAKEUPTIME=$TSDAY elif [ -n "$TSWKU" ]; then log "wakeup at scheduled time $WAKEUPTIME ($TSWKU) and no daily wakeup time set" NVWAKEUPTIME=$TSWKU else log "not daily walkuptime" # panic fi fi echo "$NVWAKEUPTIME" > $MYTH_SCHEDULE_VRWU_FILE if [ $? = 0 ]; then chmod a+rw-x $MYTH_SCHEDULE_VRWU_FILE chown $USER $MYTH_SCHEDULE_VRWU_FILE chgrp $GROUP $MYTH_SCHEDULE_VRWU_FILE else log "writing $MYTH_SCHEDULE_VRWU_FILE failed" fi # delete flag file rm $MYTH_SCHEDULE_FLAG_FILE else # no wakeup was set log "no wakeup time set" if [ -n "$TSDAY" ]; then log "wakeup at daily wakeup time" NVWAKEUPTIME=$TSDAY else NVWAKEUPTIME="" fi fi # stop here to debug # exit 0 SHUTDOWNMODE=2 if [ -n "${NVWAKEUPTIME}" ]; then if [ -n "${NVRAMCFG}" ]; then log "$NVRAMCMD --configfile "$NVRAMCFG" --syslog --settime $NVWAKEUPTIME" $NVRAMCMD --configfile "$NVRAMCFG" --syslog --settime "$NVWAKEUPTIME">/dev/null else log "$NVRAMCMD --syslog --settime $NVWAKEUPTIME" $NVRAMCMD --syslog --settime "$NVWAKEUPTIME">/dev/null fi SHUTDOWNMODE=$? log "$NVRAMCMD exited with code $SHUTDOWNMODE" log "Currently we don't trust exit code 0, forcing to 1..." SHUTDOWNMODE=1 fi case "$SHUTDOWNMODE" in 0) log "everthing looks fine, shutting down ..." shutdown -h now EXITSTATUS=0 ;; 1) log "everthing looks fine, but reboot is needed" log "sending command to grub ..." grub-set-default 1 # echo "savedefault --default=1 --once quit" | sudo grub log ".." log "." log "shutting down ..." shutdown -r now EXITSTATUS=0 ;; 2) log "no shutdown-time was set" log "shutting down wihtout reboot" shutdown -h now ;; *) log "panic. invalid shutdown mode, do nothing" EXITSTATUS=1 ;; esac ;; --startup) # check startup at scheduled time 0 yes 1 no (manualy) if [ -f $MYTH_SCHEDULE_VRWU_FILE ]; then TS_WAKEUP=$(cat $MYTH_SCHEDULE_VRWU_FILE) # | awk '{print $1}') TS_NOW=$(date +%s) TS_DELTA=$(($TS_WAKEUP - $TS_NOW)) if [ $TS_DELTA -gt $((15*60)) ]; then log "startup manualy" EXITSTATUS=1 else log "startup automaticly" EXITSTATUS=0 fi else log "startup manualy" EXITSTATUS=1 fi ;; *) #usage echo "Usage of $NAME" echo "--setwakeup time (time=hh:mm yyyy-MM-dd sets the wakeup time. don't write it into nvram)" echo "--shutdown (shutdown set nvram-wakeup and shutdown)" echo "--startup (check startup. check will return 0 if automatic else 1 for manualy)" echo "--check (check shutdown possible returns 0=ok and 1=reset idle check)" echo "--lock (disable shutdown. check will return 1)" echo "--unlock (enable shutdown. check will return 0)" ;; esac if [ "1" -eq "0" ]; then echo "Diagnostics" echo "$MYTH_TMP_FOLDER" ls -l $MYTH_TMP_FOLDER echo "$MYTH_LOG_FOLDER" ls -l $MYTH_LOG_FOLDER fi exit $EXITSTATUS