Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
AppleScript, ShellScript, Passwort »fest verdrahten«?
AppleScript, ShellScript, Passwort »fest verdrahten«?
fronk
28.03.11
12:35
Hallo Leute,
ich habe mir ein AppleScript geschrieben, welches die Sleep-Zeiten des Rechners je nach Zustand von iTunes verändern soll. Also wenn iTunes abspielt, dann soll die Sleepzeit hochgesetzt werden (gibt es einen Wert für unendlich?) damit der Rechner nicht während des Abspielens einer Playlist einschläft. Spielt iTunes nichts ab, soll der Rechner innerhalb von 10 Minuten schlafen gehen. So habe ich 10 Minuten Zeit eine neue Playlist zu starten oder muss mir keine weitern Gedanken machen, dass der Rechner unnötig läuft. Wenn iTunes gar nicht gestartet ist, soll der Rechner eine Schlafzeit von 20 Minuten haben. Der Zustand von iTunes wird alle 60 Sekunden abgefragt.
Das Script funktioniert eigentlich problemlos. Nun ist es aber so, dass ich die Schlafzeiten über ein ShellScript einstellen lasse. Da ich nicht immer das Passwort eingeben möchte, habe ich dieses fest verdrahtet. Leider ist es aber so, dass ich nach einer längeren Ruhephase des Rechners trotzdem nach dem Passwort gefragt werde? Wie kann man das umgehen, irgendwelche Ideen? Ich habe gedacht, dies wäre eventuell nur eine zeitkritische Sache, daher habe ich zu Beginn des Scriptes einfach eine kleine Pause eingebaut. Die Passwort-Abfrage kommt aber sofort nach dem Aufwachen und nicht erst nach den eingestellten 60 Sekunden. Da wo jetzt "Passwort" steht, ist selbstverständlich das richtige Passwort drinnen.
Hier erst einmal das Script:
delay 60
repeat
if application "iTunes" is running then
tell application "iTunes"
try
if player state is playing then
do shell script ("sudo pmset -a sleep 180") password "Passwort" with administrator privileges
end if
end try
end tell
tell application "iTunes"
try
if player state is not playing then
do shell script ("sudo pmset -a sleep 10") password "Passwort" with administrator privileges
end if
end try
end tell
end if
if application "iTunes" is not running then
do shell script ("sudo pmset -a sleep 20") password "Passwort" with administrator privileges
end if
delay 60
end repeat
Vielen Dank schon jetzt für die hoffentlich zahlreichen Antworten …
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
Kommentare
_mäuschen
28.03.11
14:31
Anstelle
sudo pmset -a sleep x
benutze
pmset force sleep x
unendlich
Use a minutes argument of 0 to set the idle time to never.
Hilfreich?
0
fronk
28.03.11
15:16
_mäuschen
Habe Dein Tipp versucht, klappt leider nicht. Die Zeiten werden nicht verändert. Ich habe mal den Befehl »pmset force sleep 10« ins Terminal eingegeben. Passiert leider auch nix.
Mit »sudo pmset -a sleep 10« und Passworteingabe geht es dann wieder …
Habe auch in die Man-Pages geschaut. Da steht folgendes: »pmset must be run as root in order to modify any settings.« da werde ich wohl leider nicht um sudo und Passwort herum kommen …
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
_mäuschen
28.03.11
15:43
Kontrolliere doch bitte mal mit
pmset -g
die force Eingaben ohne sudo
Weil bei mir klappt das wunderbar.
Hilfreich?
0
Navier-Stokes
28.03.11
15:45
Kannst Du nicht das passwort in eine Datei schreiben und die nach stdin umleiten? Also etwa:
sudo pmset -a sleep x < datei
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
Hilfreich?
0
fronk
28.03.11
15:59
_mäuschen
es scheint tatsächlich zu funktionieren. Bei der Terminalabfrage stimmen die Werte. Nur die GUI der Systemeinstellungen wird so leider gar nicht aktualisiert. Selbst nach einem erneuten Aufruf der Systemeinstellungen ist der Wert nicht der aktuelle Wert. Das klappte mit dem sudo Befehl ganz wunderbar. So wusste man immer gleich, welche Einstellung gerade aktuell ist … Wenn man das jetzt noch hinbekommen könnte, dass die Anzeige aktuell die tatsächlichen Werte anzeigt und auch aktualisiert, das wäre Klasse.
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
_mäuschen
28.03.11
16:05
Ja, das ist so.
force
- tells PM to immediately activate these settings. Does not write them to disk, and the settings
Deshalb zeigt Systemeinstellungen die Werte ab der Disk
Irgendwo hab ich noch einen Skript der das Passwort nach dem ersten Start abfrägt
und dann in sich selbst abspeichert. Somit nicht lesbar.
Hilfreich?
0
fronk
28.03.11
16:21
Navier-Stokes
sudo pmset -a sleep x < datei
… und »datei« soll dann eine einfache Text-Datei sein?
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
_mäuschen
28.03.11
16:44
Als
Programm
speichern
set check_password to ""
property my_password : ""
set my_login to do shell script ("whoami")
if check_password is my_password then
set check_password to display dialog ¬
"Enter the password of user: " & my_login ¬
buttons {"Cancel", "OK"} default button {"OK"} ¬
default answer "" with icon 2 ¬
giving up after 33 with hidden answer
if gave up of check_password is true then
set my_button to "Cancel"
quit
end if
set my_password to the text returned of check_password
end if
(* und dann deine *)
do shell script ("sudo pmset -a sleep 0") password my_password with administrator privileges
Hilfreich?
0
fronk
28.03.11
17:08
_mäuschen
Vielen, vielen Dank bis hierherl. Das muss ich jetzt erst einmal ausgiebig testen. Ab wann muss ich das Passwort dann wieder eingeben? Nach jedem Neustart? Naja, werde ich ja sehen …
Nochmals vielen Dank!
Eine Sache ist mir noch aufgefallen, war aber auch schon vorher bei mir so, das Programm kann immer nur über ein »Force quit« beendet werden?
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
_mäuschen
28.03.11
17:26
Ab wann muss ich das Passwort dann wieder eingeben?
Nachdem das Programm leicht verändert neu abgespeichert wurde.
Ein CR&BS genügt.
kann immer nur über ein »Force quit«
Wenn
Q oder
.
auch nicht funktioniert, dann zeige bitte den ganzen script.
Hilfreich?
0
fronk
28.03.11
17:52
Die Sache mit dem Beenden hat sich wahrscheinlich geklärt. Ich hatte die Zeile »exit repeat« auskommentiert, weil ich das Skript eigentlich immer im Hintergrund laufen lassen wollte. Ich dachte wenn ich es als ausführbaren Programm starte, dann sollte es sich auch wie ein ausführbares Programm beenden lassen. Scheint nicht so zu sein …
„Nicht nur meckern und jammern, selber was zum Positiven verändern!“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Das Apple-Frühjahr 2025
Vor 18 Jahren: iPhone, Apple TV und "Apple Inc."
PIN-Code erraten: Dauer
Bericht: M5 Pro trennt GPU- von CPU-Kernen für ...
Apple-Leak spricht vom "iPad Air M3"
Apple kündigt Systemupdates für heute Abend an ...
Mac-Leistung: Wie viel schneller ist eine inter...
iOS 18.3 mit Hinweisen auf neue Apple-Hardware