NetworkManager
Deaktiviert das drahtlose Netzwerk (in nm-manager.c:do_sleep_wake
), wenn ich mein Notebook anhalte .
Ich würde das Netzwerk jedoch gerne noch für eine sehr kurze Zeit nutzen (um die Bereitstellung von Bereitstellungen cifs
aufzuheben, die mein System ansonsten bei der Wiederaufnahme unbrauchbar machen).
Wie kann ich mein Netzwerk NetworkManager
nicht deaktivieren? Kann man einige Sekunden warten (oder bis etwas ausgelöst wird oder eine Sperre aufgehoben wird)?
Verwandte: pm-utils: Kein Netzwerk in Suspend-Skripten?
Austestungsprotokoll:
Feb 8 10:03:23 zenbook NetworkManager[3606]: <debug> [1360314203.373226] [nm-manager.c:3391] upower_sleeping_cb(): Received UPower sleeping signal
Feb 8 10:03:23 zenbook NetworkManager[3606]: <info> sleep requested (sleeping: no enabled: yes)
Feb 8 10:03:23 zenbook NetworkManager[3606]: <info> sleeping or disabling...
Feb 8 10:03:23 zenbook NetworkManager[3606]: <info> (wlan0): now unmanaged
BEARBEITEN: Um es klar zu machen, /etc/pm/sleep.d
hilft es nicht , Skripte zu haben , da das Netzwerk bereits deaktiviert ist, sobald ein Skript ausgeführt wird.
networkmanager
power-management
C-Otto
quelle
quelle
gnome-control-center
.Antworten:
Ich weiß nicht, ob es Standard ist, aber in Ubuntu gibt es Skripte, die vor dem Anhalten / nach dem Fortsetzen in
/etc/pm/sleep.d
und in ausgeführt werden/usr/lib/pm-utils/sleep.d
. In meinem System scheint das Netzwerk durch heruntergefahren zu sein/usr/lib/pm-utils/sleep.d/60_wpa_supplicant
.Sie können beispielsweise ein Skript schreiben, um
/etc/pm/sleep.d/10-umount
die Bereitstellung Ihrer Freigaben vor dem Anhalten aufzuheben. Die Struktur dieser Skripte ist wie folgt:Beachten Sie, dass, wenn das Skript einen generischen Fehler zurückgibt, die Unterbrechung abgebrochen wird. Achten Sie daher darauf (insbesondere, wenn Sie wie ich den Deckel schließen und den Laptop aufbewahren ...). Um komplexere Dinge zu schreiben, danke an Samuel Peter für seinen Kommentar:
Sie können sie sogar nach der automatischen Wiederaufnahme automatisch wieder anbringen. von hier fand ich das:
So setzt im selben Skript das
umount
undmount command
arbeiten soll (in suspendieren sie vor dem Herunterfahren Netzwerk ausgeführt wird, und in wieder danach).Der Link in Ihrer Frage ist aufschlussreich. Es ist meine Interpretation, dass wenn NetworkManager das Netzwerk herunterfährt, bevor die Skripte auf Ebene 00-50 ausgeführt werden, dies ein Fehler ist - zumindest wenn die Verbindung als Systemverbindung markiert ist (unter Netzwerkeinstellungen -> Optionen -> Identität - > Anderen Benutzern zur Verfügung stellen).
quelle
pm-utils
sollte in allen Mainstream-Distributionen verfügbar sein und ist wahrscheinlich standardmäßig installiert.$NA
ist "nicht anwendbar",$DX
ist "deaktiviert" und$NX
ist "nicht ausführbar". . Siehe diehook_exit_status
Funktion im Skript pm-functionssystem connection
Eigentum untersuchen. EDIT: Es war schon einsystem connection
.Aufbauend auf den Aussagen von @ensc können Sie stattdessen selbst auf dieses D-Bus-Signal (Systemsitzung) warten. Der allgemeine Workflow mit der
org.freedesktop.login1.Manager
Schnittstelle wäre:Inhibit(what, who, why, mode)
what
:sleep
odershutdown:sleep
who
:unmount_cifs
oder wie auch immer Sie Ihr Skript nennenwhy
:unmounting cifs X before suspend ...
oder gleichwertigmode
:delay
für eine max. von 5s (Standard) oderblock
auf unbestimmte Zeit blockieren (ich würde die erste empfehlen. Wenn Ihr Skript blockiert, wird Ihr Notebook einfach nie in den Ruhezustand versetzt.)PrepareForSleep
, die zurückkehrt,True
wenn sie kurz vor dem Suspendieren oder Winterschlaf steht undFalse
wenn sie wieder aufgenommen und aufgetaut wird)PrepareForShutdown
, dasTrue
beim Herunterfahren zurückkehrt und beim Wiedereinschalten zurückkehren sollteFalse
(stattdessen kehrt es auchFalse
zur gleichen Zeit zurück,True
die für mich keinen Sinn ergibt, daher würde ich denFalse
Teil hier einfach ignorieren ; Sie haben wahrscheinlich bereits eine Art Automounting-Skript auf Systemstart sowieso, nicht wahr?)True
Signals fertig sind (dh die Bereitstellung aufheben), lösen Sie die Sperre, indem Sie den Dateideskriptor (zurückgegeben vonInhibit(...)
) schließen, damit der Computer so schnell wie möglich in den Ruhezustand versetzt oder heruntergefahren werden kann, ohne auf die gesamten 5 Sekunden zu warten ( oder sogar auf unbestimmte Zeit imblock
Modus)False
Signal (Fortsetzen / Auftauen) verarbeiten, indem Sie es erneut einbinden (möglicherweise zuerst warten, bis das Netzwerk wieder eingeschaltet wird) und dann eine neue Sperre mit erstellenInhibit(...)
(für den nächsten Ruhezustand oder das nächste Herunterfahren).In Python (2.7) könnte dies so aussehen:
In dieser Übersicht finden Sie meinen Wrapper um Pidgin, mit dem Sie IM-Konten beim Ruhen und Herunterfahren mit genau demselben Ansatz trennen können.
Siehe auch die offizielle freedesktop-Dokumentation zu Inhibitor Locks und der
logind
D-Bus-API .quelle
Sie könnten versuchen herauszufinden, warum
nm
die Geräte heruntergefahren werden:Wenn (wie in meinem Fall (Fedora 20))
systemd
das Signal ausgelöst wird, können Sie dessen Übermittlung in der dbus-Konfiguration verweigern:Leider sind diese Regeln nicht sehr feinkörnig und blockieren das
PrepareForSleep
Signal auch für andere Prozesse.quelle
Versuchen Sie, den Dienst vor dem Anhalten herunterzufahren und nach dem Fortsetzen erneut zu starten. So wie das:
http://oleeekchoff.blogspot.ie/2012/05/restart-modulesservices-after.html
quelle