Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>MacBook automatisch runterfahren lassen wenn es vom Strom getrennt wird - möglich?

MacBook automatisch runterfahren lassen wenn es vom Strom getrennt wird - möglich?

pummelfee19.10.0910:50
Ist jemandem von euch eine Software bekannt, mit der man ein MacBook "ordentlich" herunterfahren lassen kann, wenn ein bestimmtes Ereignis eintritt, z.B. Trennung vom Netz?

Hintergrund ist der, dass ein MacBook als Medienabspieler an einer Steckerleiste mit An-/Aus-Schalter hängt. Nun soll das Notebook richtig runterfahren wenn man die Steckerleiste auschaltet anstatt in den Ruhezustand zu gehen und dabei (ist leider unter SL 10.6 so) den Akku leerzumachen. Siehe auch meinen Thread

Das wäre ein prima Workaround für dieses spezielle Problem aber auch für Macs, bei denen der Akku eh schon auf dem letzten Loch pfeift.
0

Kommentare

bimden19.10.0911:12
das sollte mit Marco Polo möglich sein.
0
pummelfee19.10.0911:29
bimden
das sollte mit Marco Polo möglich sein.

Danke, aber ich glaube das isses nicht so ganz. Ist wohl primär dafür gedacht automatisch die Netzwerkumgebung zu wechseln. Man kann auch alle möglichen Bedingungen angeben, aber bei den Aktionen fehlt ausgerechnet das Runterfahren des Rechners.

Könnte man nicht eine USV Software benutzen?
0
MetallSnake
MetallSnake19.10.0911:32
Wenn du Programmierkenntnisse hast könntest du auf AppleEvents reagieren und den Rechner abschalten wenn dein gewünschtes Event ausgelöst wird. ^^
„Das Schöne an der KI ist, dass wir endlich einen Weg gefunden haben, wie die Wirtschaft weiter wachsen kann, nachdem sie jeden Einzelnen von uns getötet hat.“
0
pummelfee19.10.0911:40
MetallSnake
Wenn du Programmierkenntnisse hast könntest du auf AppleEvents reagieren und den Rechner abschalten wenn dein gewünschtes Event ausgelöst wird. ^^

Ich weiß, das ist ja das blöde. Im Prinzip kann das keine große Sache sein eine kleine App zu bauen, die den entsprechenden Prozess überwacht und dann den Rechner runterfährt. Leider, leider hab ich es mit Programmieren nicht so...
0
bimden19.10.0911:45
ich kann es jetzt nicht ausprobieren, aber laut Beschreibung kann Marco Polo auf den Wechsel der Stromquelle reagieren. Es sollte also zumindest möglich sein, damit ein Apple Script zu triggern, das den Rechner runterfährt.
Vielleicht liege ich falsch, aber probiere es doch mal aus. Falls ich im Laufe des Tages dazu komme, es zu testen melde ich mich nochmal.
0
_mäuschen
_mäuschen19.10.0911:56

set last_time to ""
repeat
  set origSettings to do shell script "pmset -g"
  set settingsList to the paragraphs of origSettings
  set powerType to ""
  repeat with settingLine in settingsList
    if settingLine ends with "*" then
      if settingLine begins with "AC Power" then
        set this_time to "AC Power"
      else
        set this_time to "Battery"
      end if
    end if
  end repeat
  if this_time ≠ last_time then
    if this_time = "AC Power" then AC()
    if this_time = "Battery" then Battery()
  end if
  set last_time to this_time
  delay 1
end repeat

on AC()
  --  tell application "Finder" to display dialog "AC"
end AC

on Battery()
  --  tell application "Finder" to display dialog "Battery" giving up after 3
  tell application "System Events"
    set processList to every process
    repeat with i from 1 to (number of items in processList)
      set thisProcess to item i of processList
      if thisProcess is not background only and name of thisProcess is not "Finder" and name of thisProcess is not (name of me) then
        try
          do shell script ("killall " & (name of thisProcess as string))
        end try
      end if
    end repeat
  end tell
  tell application "Finder" to shut down
end Battery


0
Wowbagger19.10.0912:03
Du kannst auch einfach das "Schlafverhalten" Deines MacBooks umstellen:

Mit der Einstellung "hibernationmode 1" wird der Inhalt des Arbeitsspeichers auf die Festplatte geschrieben, wenn das MacBook in den Ruhezustand geht, der Stromverbrauch sinkt dadurch auf ein Minimum.
0
pummelfee19.10.0912:19
@ mäuschen

Das liest sich doch schonmal sehr plausibel. Werde ich heute abend direkt testen Vielen Dank schonmal!!!
0
pummelfee19.10.0918:16
@_mäuschen

Danke 1000x nochmal für das Script. Ich hab das im Scripteditor als Programm gespeichert. Es scheint auch ___ööörgendwas___ zu machen; es kommt, wenn ich das Magsafe Ding rausziehe in den Vordergrund und irgendwann meldet dann der Finder "Die Abmeldung ist fehlgeschlagen, da das Programm "...dein Script halt eben" nicht beendet werden konnte. .......
Also behindert just dieses Script das den Mac ausschalten will, den Abmeldeprozess.
Oder hab ich da was falsch gemacht? Wie gesagt, ich habs überhaupt nicht mit Scripten usw.
0
pummelfee19.10.0920:13
pummelfee
@_mäuschen

Danke 1000x nochmal für das Script. Ich hab das im Scripteditor als Programm gespeichert. Es scheint auch ___ööörgendwas___ zu machen; es kommt, wenn ich das Magsafe Ding rausziehe in den Vordergrund und irgendwann meldet dann der Finder "Die Abmeldung ist fehlgeschlagen, da das Programm "...dein Script halt eben" nicht beendet werden konnte. .......
Also behindert just dieses Script das den Mac ausschalten will, den Abmeldeprozess.
Oder hab ich da was falsch gemacht? Wie gesagt, ich habs überhaupt nicht mit Scripten usw.
pummelfee
@_mäuschen

Danke 1000x nochmal für das Script. Ich hab das im Scripteditor als Programm gespeichert. Es scheint auch ___ööörgendwas___ zu machen; es kommt, wenn ich das Magsafe Ding rausziehe in den Vordergrund und irgendwann meldet dann der Finder "Die Abmeldung ist fehlgeschlagen, da das Programm "...dein Script halt eben" nicht beendet werden konnte. .......
Also behindert just dieses Script das den Mac ausschalten will, den Abmeldeprozess.
Oder hab ich da was falsch gemacht? Wie gesagt, ich habs überhaupt nicht mit Scripten usw.

Ha! Über Automator klappts!
0
_mäuschen
_mäuschen20.10.0912:24

Ändere die Zeile
if this_time = "Battery" then Battery()
zu
if this_time = "Battery" then
              Battery()
              exit repeat
        end if

und ziehe die Zeile
  tell application "Finder" to shut down
vor
 on AC()

0
DonQ
DonQ20.10.0912:28
ein erkanntes usv und das dann nutzen, muss auch gehen
„an apple a day, keeps the rats away…“
0
pummelfee20.10.0917:27
[quote=_mäuschen]
Ändere die Zeile...

Hallo,

danke für deine Mühe - leider komme ich doch nicht ganz damit klar. Das ursprüngliche Script funktioniert im Prinzip, aber wenn ich das als App aus dem Automator erzeuge, schnappt sich das Ding gleich 60% CPU.
Aus dem Scripteditor heraus klappts nicht.
Ich habe auch deine Änderungen gemacht, aber ich glaube, du setzt bei mir etwas zu viel voraus. Es klappt nicht, ich kriege beim Ausführen des Scriptes Fehlermeldungen. Kannst du vielleicht mal das komplette, richtige Script hier posten? Wäre SUUUPER!

0
_mäuschen
_mäuschen20.10.0918:57

my_name dem Dateinamen anpassen!
Und umkommentieren

set last_time to ""
set my_name to "testkill"
global my_name
repeat
  set origSettings to do shell script "pmset -g"
  set settingsList to the paragraphs of origSettings
  set powerType to ""
  repeat with settingLine in settingsList
    if settingLine ends with "*" then
      if settingLine begins with "AC Power" then
        set this_time to "AC Power"
      else
        set this_time to "Battery"
      end if
    end if
  end repeat
  if this_time ≠ last_time then
    if this_time = "AC Power" then AC()
    if this_time = "Battery" then
      Battery()
      exit repeat
    end if
  end if
  set last_time to this_time
  delay 1
end repeat
tell application "Finder" to display dialog "END"
--tell application "Finder" to shut down

on AC()
  tell application "Finder" to display dialog "AC" giving up after 1
end AC

on Battery()
  tell application "System Events"
    set processList to every process
    repeat with i from 1 to (number of items in processList)
      set thisProcess to item i of processList
      if thisProcess is not background only and ¬
        name of thisProcess is not "Finder" and ¬
        name of thisProcess is not my_name then
        try
          tell application "Finder" to ¬
            display dialog (name of thisProcess as string) ¬
              giving up after 1
          --do shell script ("killall " & (name of thisProcess as string))
        end try
      end if
    end repeat
  end tell
end Battery

0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.