Nettes kleines Shell-Tool für Sleep, Wakeup und eine Menge anderer Funktionen

  • Morgen Leute.


    Ich habe mir gestern auf meinem T61p ein kleines Tool installiert. Damit kann man Aktionen ausführen wenn man den Rechner in den Sleep schickt bzw. er wieder aufwacht.


    Sicherlich gibts hier bereits schon Programme für. Das sind aber GUI-Lösungen und zudem noch kostenpflichtig. Das Tool was ich verwende arbeitet in der Shell und ist somit äußerst schlank und an Resourcen benötigt es so gut wie gar nichts.


    http://www.bernhard-baehr.de/
    http://www.bernhard-baehr.de/sleepwatcher_2.2.tgz


    Auf meinem Rechner nutze ich es dafür um z.b. eine VPN-Verbindung vor dem Sleep zu beenden. Macht man das nicht hat man jedesmal nach dem Aufwachen eine Fehlermeldung, dass die VPN-Verbindung unterbrochen wurde. Nervig. Und so wird sie unterbrochen vor dem Sleep und beim Aufwachen wieder hergestellt. Das gleiche mache ich mit dem HWMonitor welcher auf unseren T61(p) sehr wichtig ist. Dieser scheint manchmal nicht mehr richtig zu klappen nach dem Aufwachen. Ihn jedesmal von Hand zu beenden und neu zu starten war mir irgendwann aber zu blöd. Und wenn man es vergisst läuft man Gefahr, dass der Rechner irgendwann zu heiss wird da die Sensoren nicht mehr ausgelesen werden.


    Lange Rede kurzer Sinn .... hier nun meine Scripte als Beispiel:


    ~/Dokumente/shell/sleepwatcher/sleep.sh

    Code
    1. osascript -e 'tell application "HWMonitor" to quit'
    2. scutil --nc stop "VPN (PPTP)"


    ~/Dokumente/shell/sleepwatcher/wakeup.sh


    Damit das Ganze auch beim Booten automatisch geladen wird benötigt man noch eine .plist für den LaunchAgent.


    ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist


    Wenn man jetzt nicht Neustarten möchte um den Agent erstmalig in Betrieb zu nehmen, so kann man das mit folgender Befehlszeile tun:


    Code
    1. sudo launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist


    Wenn man die Beispiele von den Pfaden her so übernimmt muss das Ganze am Ende wie auf dem Bild zu sehen ausschauen. Kann jeder natürlich anders machen.


    PS: Habe auch mal das Programm selber mit angehangen falls die offizielle Webseite irgendwann mal weg sein sollte.

    Bilder

    Dateien

    8 Mal editiert, zuletzt von Sascha_77 ()

  • Geil Danke dir . Dann kann ich ja VPN Verbindungen trennen lassen nd wieder herrstellen lassen.

    Lenovo T61

    4GB DDR2 RAM

    Intel Core 2 Duo

    Intel X3100 Graphics

    OSX 10.7.5 Lion

  • Tolle Sache, Danke :thumbsup:

    MfG thommel


  • Geil Danke dir . Dann kann ich ja VPN Verbindungen trennen lassen nd wieder herrstellen lassen.


    Dann solltest Du die IP deines Routers aber in meinem Script ändern. Aber vllt. hast Du ja die selbe.

  • Sicher nicht. Im Lokalen NEtz benutze ich 10er IPs. 10.120.21.1
    Und die interne im VPN Server netz 10.211.120.2


    Also von daher ich habe schon daran gedacht ja aber Vielen Dank für den Hinweiß

    Lenovo T61

    4GB DDR2 RAM

    Intel Core 2 Duo

    Intel X3100 Graphics

    OSX 10.7.5 Lion

  • Ich habe mein wakeup script gerade kurz angepasst. So pollt er jetzt nicht wie blöd hintereinander sondern wartet immer 2 Sekunden bis er die Pingbarkeit erneut prüft.

  • Das ist aber toll. Danke

    Lenovo T61

    4GB DDR2 RAM

    Intel Core 2 Duo

    Intel X3100 Graphics

    OSX 10.7.5 Lion

  • Gute Sache wäre auch was für die WIKI :D
    Wenn ich darf würde ich das gerne übernehmen.

  • Na aber sicher doch. Immer rein damit. ;)

  • Und drinn ist es :D

  • Jut. Ich sehe Du hast es unter Notebook gepackt. Macht es nicht Sinn das unter Tools zu packen? Auf einem Desktoprechner kann man das ja auch gut gebrauchen unter Umständen (für einen VPN-Reconnect z.B.).

  • War mir selbst nicht so ganz sicher wo ich es einpacken soll, da war die Lösung in der alten Software flexibler denn da konnte man einfach beides anklicken...
    Mal sehen ich packe es vielleicht auch noch mal zu den Tools...

  • Könnte dadurch auch das Sleep Problem mit einigen ATI Grafikkarten gelöst werden?

    iMac 15,1 - Gigabyte GA-Z77-DS3H Rev. 1.0
    i5 3750K :: PowerColor RedDevil RX480 8 GB :: 32 GB Ram DDR 3 :: macOS 11.1 @ Clover r5 & Windows 10 Pro
    MacBook Pro 15,4 - Terra Mobile 1550 :: 15,6" FullHD
    i5-8265U :: Intel UHD620 :: 8 GB RAM :: DW1560 :: macOS 10.15.5 @ Clover r5096

    MacBook Pro 8,1 - 13" Anfang 2011 :: MacBook Air 7,2 - 13" Anfang 2015


  • Eher nicht. Das Tool führt lediglich Scripte aus. Das einzige was man versuchen könnte ist, dass beim Aufwachen die GFX-Kext geunloaded und direkt wieder geloaded werden. In wiefern das im laufenden Betrieb überhaupt möglich ist entzieht sich meiner Kenntniss.

  • Ist zwar etwas älter der Beitrag aber das Tool erfüllt auch unter High Sierra seinen Dienst.
    Dachte mir daher, stelle hier mal ein praktisches Beispiel ein für einen Kext der nicht so arbeitet wie er soll.


    Problem bei mir:
    Der Kext VoodooI2C.kext erzeugt ab und zu bei mir eine Kernel Panic im Sleepmodus. Außerdem funktioniert er nach Sleep nicht mehr.
    Daher war mein Löungsansatz den Kext vor dem Sleep zu entladen und danach wieder zu laden. Funktioniert super. :)


    Verwenden kann man das bei jedem Kext der sich im laufenden Modus entladen lässt. Geht leider nicht mit jedem Kext.


    Zur Installation gibt es vom Entwickler eine Installation Routine. Da ich die hier noch nicht gefunden habe, hänge ich die auch mal an.



    Und hier ein Beispiel für die Dateien welche das Programm aufrufen.


    /etc/rc.sleep:


    /etc/rc.wakeup:


    Der Kext wird bei mir über Clover geladen. Damit ich den entladen und wieder laden kann habe ich eine Kopie hier:
    "/System/VoodooI2C.kext" kopiert.
    Damit der auch geladen und entladen wird müssen die Rechte richtig gestellt werden.

    Code
    1. sudo chmod -R 755 /System/VoodooI2C.kext


    Code
    1. sudo chown -R root:wheel /System/VoodooI2C.kext


    Das war es eigentlich schon. Vielleicht hilft es jemanden sein Sleep Problem zu lösen.

  • "/System/AppleALC.kext" kopiert. Das war glaube mehr der Wunsch. Sollte bestimmt "/System/VoodooI2C.kext" kopiert. heißen.

    iMac17,1 GA-Z170N WiFi F22f |i5-6600 HD530 |RX560 |16GB |250GB SSD |macOS 14.7 |*
    MacBook9,1XiaoMi Air 12,5"(erster XiaoMi im Forum)|M3 6Y30 HD515 |4GB |128 & 250GB SSD |macOS 11.6 |Clover
    MacBookPro15,4XiaoMi-Pro-15,6" |i5-8250U UHD620 |8GB |250 & 250GB SSD |macOS 14.7|*
    MacBookPro16,1XiaoMi RedMi 14" (erster RedMe im Forum)|i7-10510U | 8GB | 512GB SSD | macOS 14.7 & macOS 15.0|*
    MacMini8,1 NVISEN Y-MU01(erster NVISEN im Forum)|i7-10510U |24GB |256GB SSD |macOS 14.7 & macOS 15.0|*
    MacMini8,1HYSTOU S210H (Adventskalender vs. DSM2 samt Fake Profil)|i9-9880H UHD630|32GB |250GB SSD |macOS 14.7 & macOS 15.0|*
    MacMini8,1HYSTOU P05B (erster Hack mit OpenCore im Forum)|I7-8550U UHD620|16GB |500GB SSD |macOS 14.7 & macOS 15.0|*

    * BootLoader OpenCore REL-103-2024-10-10


    Experte ist nicht immer gleich Expertise

  • Hallo @BlackOSX,
    Stimmt, war ein Überbleibsel vom Test mit dem AppleALC.kext. Leider kann man denn nicht im laufenden Prozess entladen, aber vielleicht bekommt das einer hin.
    Zusammen mit dem CodecCommander.kext im Clover Ordner funktioniert der Ton bei mir wunderbar nach Sleep.

  • Ich habe mich gerade noch mal etwas mit dem Tool auseinandergesetz. Mir war gar nicht bewusst was für Überwachnungsfunktionen da noch drinstecken. Z.b., habe ich hier ein T440 welches in den Sleepmodus geht sobald das Display auf Standby geht. Ich musste in den Energieoptionen den autom. Ruhezustand des Monitors auf "Nie" setzen damit das aufhört. Allerdings muss ich jetzt immer über einen Hot Corner das Display manuell in Standby schicken. Mittels diesem Befehls macht er das nach 5 Minuten automatisch sofern die Maus nicht bewegt oder auf der Tastatur getippt wird.


    Code
    1. sleepwatcher -d -i "pmset displaysleepnow" -t 3000


    Und das hier ist die gesamte Palette ... kann sich sehen lassen:



    Klein aber fein kann man da nur sagen. :D

    2 Mal editiert, zuletzt von Sascha_77 ()

  • Sascha_77 : Habe mich exakt an Deine Vorgaben gehalten. Wenn ich nun eines meiner Scripte aufrufen will, bleibt Sleepwatcher augenscheinlich hängen, bis ich es mit ctrl-c beende.


    Code
    1. Michael:~ michael$ /usr/local/sbin/sleepwatcher --verbose --sleep /Users/michael/Documents/shell/sleepwatcher/wakeup.sh
    2. ^Csleepwatcher: got SIGINT - exiting
    3. Michael:~ michael$

    Du bist nicht der Entwickler, ist klar, aber hast Du eine Idee?

    Meine Scripte:

    sleep.sh

    Code
    1. osascript
    2. tell application "Phoebetria"
    3. quit
    4. end tell

    wakeup.sh


    Code
    1. osascript
    2. tell application "Phoebetria"
    3. activate
    4. end tell


    Als Applescript im Editor ohne "osascript" ausgeführt funktionieren die Scripte (aber ich habe genau null Ahnung von Applescript).

    Danke
    Gruß
    Michael

    P.S.: Ist Dein A1200 einer der "Neugeräte" aus der Aktion vom Pedro, oder hast Du den schon lange aufgerüstet?

    -Mac SE/30 - Mac IIvx -Performa 5200 -Performa 5500 black -PowerMac 7500/100 -PowerMac 8600/250 (Sonnet G3 400) -iMac G3/266 green (defekt) -iMac G3/266 tangerine -iMac G3/350 indigo (Summer 2000) -eMac G4/1.0, -PowerMac G5 1.8 -Powerbook G4 17" 1,33 GHz
    Mobil: Wortmann Terra 8411, 15,4", T9400, Nvidia 9600m, 4GB RAM, 120 SSD MX100, AzureWave AR5BXB92, Ubuntu
    www.tote-pixel.de - www.tellerrandfroschung.de - www.hessburg.de

    Einmal editiert, zuletzt von Hessi ()

  • Der Sleepwatcher läuft etwas verändert auch unter BigSur 1A. Er kann für alle möglichen Tasks verwendet werden die man so machen möchte wenn der Rechner in denn Ruhezustand geht oder von diesem Aufwacht.

    Die Angepasste Konfiguration habe ich hier angehängt.


    Installation wie folgt:

    1. Die Zip auf dem Desktop entpacken.


    2. Im Terminal in den Paket Ordner wechseln.

    Code
    1. cd ~/Desktop/sleepwatcher_2.2.1_BigSur

    3. Die nötigen Dateien installieren.

    Code
    1. sudo mkdir -p /usr/local/share/man/man8
    2. sudo cp sleepwatcher /usr/local/bin
    3. sudo cp sleepwatcher.8 /usr/local/share/man/man8
    4. sudo cp ./config/de.bernhard-baehr.sleepwatcher-20compatibility.plist /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher.plist

    sleepwatcher läuft hiermit bereits. Mit

    Code
    1. man sleepwatcher

    kann die Hilfe zum Programm aufgerufen werden.


    4. Die Script Dateien erstellen für Sleep und Wake.

    Code
    1. sudo nano /etc/rc.wakeup
    2. sudo nano /etc/rc.sleep

    und mit irgendwas befühlen zum Beispiel als Test das hier

    Shell-Script
    1. #!/bin/sh
    2. mkdir /<UserName>/Desktop/Ich_war_hier
    3. exit

    6. Die Dateien ausführbar machen

    Code
    1. sudo chmod +x /etc/rc.sleep /etc/rc.wakeup

    Nach einem Neustart läuft sleepwatcher und macht exact das was in den beiden Dateien rc.wakeup und rc.sleep steht.