[gelöst] anacron: startet nicht nach Suspend und Netzteil. .

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

[gelöst] anacron: startet nicht nach Suspend und Netzteil. .

Beitrag von ingo2 » 01.08.2015 22:12:06

Mit Jessie-amd64 (Neuinstallation mit XFCE) habe ich folgendes Problem auf einem ThinkPad T520:

1. anacron (cron.daily) läuft nicht, wenn mit Akku gebootet wird und später das Netzteil angeschaltet wird. Das geht auf meinem IdeaPad S10-2 mit Wheezy sauber und problemlos.

2. Nach s2ram läuft anacron ebenfalls nicht an. Das müßte er aber, denn wenn z.B. über Nacht das Datum wechselt, sollte cron.dayly abgearbeitet werden.
Ebenso wird der Akku nicht geladen, wenn man unter Akku s2ram aktiviert und nach dem Resume das Netzteil anschaltet. Dann wird nur der laufende Stromverbrauch vom Netzteil gezogen (12 - 14W bei idle). Auch das geht auf meinem IdeaPad S10-2 mit Wheezy.

Habe leider keine Ahnung, wo ich da den Schuldigen suchen soll, acpi-daemon, systemd, udev?
Würde ja auch einen Bug für Jessie melden, aber gegen welches Paket? Gibt es da Leidensgenossen oder gar schon eine Lösung?

Beste Grüße,
Ingo
Zuletzt geändert von ingo2 am 04.08.2015 20:28:26, insgesamt 1-mal geändert.

Benutzeravatar
detix
Beiträge: 1705
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: anacron: startet nicht nach Suspend und Netzteil ansteck

Beitrag von detix » 02.08.2015 11:24:48

ingo2 hat geschrieben:1. anacron (cron.daily) läuft nicht, wenn mit Akku gebootet wird
2. Nach s2ram läuft anacron ebenfalls nicht an.
Schau dir dazu mal zB die /etc/cron.daily/apt an, da steht dann sowas:

Code: Alles auswählen

check_power(){
    if which on_ac_power >/dev/null; then
        on_ac_power
        POWER=$?
        if [ $POWER -eq 1 ]; then
        debug_echo "exit: system NOT on main power"
        return 1
        elif [ $POWER -ne 0 ]; then
        debug_echo "power status ($POWER) undetermined, continuing"
        fi
        debug_echo "system is on main power."
    fi
    return 0
}
# und der Aufruf später:
check_power || exit 0
womit der cronjob bei Batteriebetrieb mMn ausgesetzt wird, das findet sich ähnlich auch noch in anderen cronjob-Dateien wieder.
Desweiteren läuft Debiananacron, im Gegensatz zu Debiancron, nicht als Dämon sondern relativ zum Systemstart.
Hier müßtest du, wahrscheinlich in den Debianpm-utils, schon den Start von anacron nach einem Suspend von Hand eintragen.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: anacron: startet nicht nach Suspend und Netzteil ansteck

Beitrag von ingo2 » 02.08.2015 12:25:27

Das mit den Scripten in cron.daily (z.B. apt) ist ja bekannt, da checkt er auf "AC power".
Aber anacron läuft ja nicht an - ich finde auch keinen aktualisierten Timestamp in /var/spool/anacron/cron.daily.

Gerade mit "AC power" sollte das aber funktionieren, denn in /usr/lib/pm-utils/power.d/anacron steht:

Code: Alles auswählen

# This script makes anacron jobs start/stop when a machine gets or loses AC
# power.

case $1 in
    false)
	/usr/sbin/invoke-rc.d anacron start >/dev/null   
	;;
    true)
	/usr/sbin/invoke-rc.d anacron stop >/dev/null   
	;;
esac
D.h. doch, anacron sollte nach Anstecken des Netzteils nochmal starten, wenn sein Timestamp nicht aktualisiert wurde?

Gruß,
Ingo

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: anacron: startet nicht nach Suspend und Netzteil ansteck

Beitrag von ingo2 » 02.08.2015 21:32:00

Habe gerade gesehen, daß dies ein Unterforum für 2Serverbetrieb" ist. Obwohl anacron ja ein "Dienst" ist, gehört das Thema vielleicht wo anders hinß Bitte ggf. verschieben.

Habe gerade herausgefunden, wo wahrscheinlich der Hund begraben liegt:

Script /etc/apm/event.d/anacron wird nicht ausgeführt. Folgender Inhalt.

Code: Alles auswählen

#! /bin/sh

# This script makes anacron jobs start to run when the machine is
# plugged into AC power, or woken up.  For a laptop, these are the 
# closest parallels to turning on a desktop.

# The /etc/init.d/anacron script now normally tries to avoid running
# anacron unless on AC power, so as to avoid running down the battery.
# (Things like the slocate updatedb cause a lot of IO.)  Rather than
# trying to second-guess which events reflect having or not having
# power, we just try to run anacron every time and let it abort if
# there's no AC.  You'll see a message on the cron syslog facility 
# (typically /var/log/cron) if it does run.

case "$1,$2" in
change,power|resume,*)
    /usr/sbin/invoke-rc.d anacron start >/dev/null   
    ;;
esac
Wenn ich das manuell ausführe, nachdem ich den Timestamp 1 Tag zurückdatiert habe

Code: Alles auswählen

 /usr/sbin/invoke-rc.d anacron start
läuft cron.dayly komplett ab und der Timestamp wird upgedatet:
syslog:

Code: Alles auswählen

Aug  2 21:19:51 alf anacron[5413]: Anacron 2.3 started on 2015-08-02
Aug  2 21:19:51 alf anacron[5413]: Will run job `cron.daily' in 5 min.
Aug  2 21:19:51 alf anacron[5413]: Jobs will be executed sequentially
Aug  2 21:24:51 alf anacron[5413]: Job `cron.daily' started
Aug  2 21:24:52 alf anacron[5522]: Updated timestamp for job `cron.daily' to 2015-08-02
Aug  2 21:24:59 alf anacron[5413]: Job `cron.daily' terminated
Aug  2 21:24:59 alf anacron[5413]: Normal exit (1 job run)
Also, warum wird der apm-Event nicht erkannt, bzw. nicht korrekt iterpretiert???

ingo

Benutzeravatar
detix
Beiträge: 1705
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: anacron: startet nicht nach Suspend und Netzteil ansteck

Beitrag von detix » 02.08.2015 22:20:50

Im Ubuntu-Wiki zu den pm-utils wird vieles recht anschaulich erklärt, vielleicht hilft das ja herauszufinden warum cronjobs nach Anschluss der Netzspannung nicht ausgeführt werden.
https://wiki.ubuntuusers.de/pm-utils
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: anacron: startet nicht nach Suspend und Netzteil ansteck

Beitrag von ingo2 » 04.08.2015 20:47:40

detix hat geschrieben:Im Ubuntu-Wiki zu den pm-utils wird vieles recht anschaulich erklärt, ...
Stimmt, aber das ist hoffnungslos outdatet und kennt systemd nicht. Letzlich hat mir das Arch-Wiki geholfen!

Aber der Reihe nach (ich beschreibe hier einfach, was ich mir dazu notiert habe):

Zur Fehlersuche die für "power events" zuständigen Scripts gefunden in:
/usr/lib/pm-utils/power.d/
Script "anacron" editiert und eine zusätzliche Zeile für Tests eingefügt
(Das ist das 2. Script in der Ausfürungsreihenfolge nach 95hdparm-apm)
echo "$(date +"%d. %R") power event" >> /home/ingo/Schreibtisch/...

Beobachtung:
"anacron" läuft nur, bei Boot und Shutdown, nie bei AC<->BAT events!
Bei Shutdown nur, wenn er über das Menu erfolgt, nicht bei Power-Button!
und nur, wenn das System mit BAT gebootet wurde.
Bei Boot nur, wenn der Rechner auf BAT läuft, nicht bei AC-Power!

Wenn man den PC im X-term mit "pm-suspend" schlafen legt, läuft anacron
beim Resume!

Und jetzt die entscheidende Beobachtungen:
Wenn man den PC im X-term mit "pm-suspend" schlafen legt, läuft anacron
beim Resume!
Die Aktionen kann man auch im X-term jederzeit auslösen mit 'pm-powersave'.

Die Erklärung Lösung im Arch-Wiki unter https://wiki.archlinux.org/index.php/Po ... nd_scripts gefunden:
Dort heißt es:
> There is just one thing systemd cannot do (as of systemd-204):
> power management depending on whether the system is running
> on AC or battery.

Und das betrifft offensichtlich auch Jessie. Entweder ist diese Funktion auch in 2.15 nicht vorhanden, oder Debian hat sie nicht (korrekt) eingebaut. Das Arch-Wiki liefert auch die Lösung, hier auf jessie übertragen:
Udev-rule erstellt:

Code: Alles auswählen

	/lib/udev/rules.d/98-powersave.rules
	# ATTR values:	"0" = on battery;	"1" = on AC power
	SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
	SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin/pm-powersave false"
Und das klappt jetzt wieder wie in Wheezy gehabt: anacron und auch die zugehörigen Jobs laufen auch, wenn man den laptop/PC mit batterie bootet und nachher das netzteil ansteckt.

Den aktuellen Zustand kann man übrigens mit

Code: Alles auswählen

cat /sys/class/power_supply/AC/online
abfragen und es bedeutet:
-> 1 = AC-Power; 0 = Battery

War ein schönes Beispiel der "dark side of systemd". Oder wie man ein ausgereiftes System (pm-utils) durch ein modernes aber halbfertiges (systemd) ersetzt.

Ingo

P.S.: konnte leider gestern nicht anworten, im ganzen Viertel hier war bis heute Mittag VDSL und damit auch Telefon tot (war eine Sicherung im MSAN).

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: [gelöst] anacron: startet nicht nach Suspend und Netztei

Beitrag von ingo2 » 05.08.2015 12:38:43

Nachtrag:

Habe jetzt auch einen Standby (im Akkubetrieb) über Nacht getestet: am nächsten Tag läuft anacron, sobald "on AC power".
Der einzige Fall, bei dem jetzt kein "power event" ausgelöst wird, ist, wenn Standby "on AC power" ausgeführt wird. das ist aber auch sinnfrei, denn da sollte anacron ja bereits gelaufen sein.

In diesem Sinne,
Ingo

Antworten