das zehn Minuten danach Script...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Baldrian
Beiträge: 290
Registriert: 13.05.2004 16:22:39

das zehn Minuten danach Script...

Beitrag von Baldrian » 30.03.2006 21:33:21

Moin, ich hab mal ne frage.

Also es ist ja ansich ein leichtes Abläufe zeitgesteuert zu starten, aber gibt es auch eine möglich soetwas relativ zu einem Prozess zu tun?

Also was ich gerne hätte, wäre zum Beispiel ein Shell-Script das dafür sorgt das der Rechner ca. 10 Minuten nach dem keine Musik mehr läuft in den Ruhezustand versetzt wird.
Es passiert mir öffters mal das ich abends irgendwie doch schon eher einschlafe als gedacht und dann läuft der Rechner danach noch die halbe nacht. das muss ja nicht sein.
Natürlich könnte man auch einfach mit at ne deadline festlegen, aber es nervt wenn ich mir schon ne Stunde vorher die Gedanken machen muss, wann ich vieleicht ins Bett will und will ich dann doch noch nicht dann ist die Kiste auf einmal aus...

Also wie gesagt, vieleicht das so ca einmal in der Minute guckt ob Musik laüft und wenn es dann zehnmal nacheinander nicht der Fall war ( ich als auch nix neues angemacht habe ) den Rechner dann ausschaltet oder in den Ruhezustand versetzt.

wäre das möglich und wenn ja wie?
abzufragen ob ein Rechner noch im Netz ist ok, aber wie kann man überprüfen ob Musik läuft?
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 30.03.2006 21:52:52

Vielleicht hilft dir etwas in der Art weiter:

Wenn bei mir Musik läuft, ergibt fuser

Code: Alles auswählen

fuser /dev/snd/pcmC0D0p
/dev/snd/pcmC0D0p:    7102m
Läuft keine Musik, also ist das Devicefile nicht in gebrauch, gibt fuser nichts zurück, ich schätze also mal NULL.

Das könntest du natürlich in einem Bashscript verwenden, das wie du sagtest regelmäßig nachschaut und gegebenenfalls mit sudo den Rechner herunterfährt.

Wenn du allerdings einen Sounddaemon im Einsatz hast, dürfte diese Methode scheitern, außerdem brauchst du einen Mediaplayer, der das Soundevice freigibt, sobald er nichts mehr abspielt, also ziemlich viel wenn und aber..

Gruß
puntarenas

Methusalix

das zehn Minuten danach Script..

Beitrag von Methusalix » 30.03.2006 23:00:52

Hallo,

vielleicht ist das möglich, wenn Du in das von puntarenas angeregte Script noch
den Prozeßstatus des abspielenden Programmes erst abfragst und dann einbaust.
Dort sollte, z.B. mit ps abgefragt, ja irgendwas mit S stehen. Das ließe sich ja
auswerten.

Gruß
Matthias

Benutzeravatar
Baldrian
Beiträge: 290
Registriert: 13.05.2004 16:22:39

Beitrag von Baldrian » 31.03.2006 10:55:18

Hm.... also das hört sich ja schon mal ganz gut an, nur leider bekomme ich da beim Beep Media Player leider gar kein Ergebnis über fuser.
Bei welchem Player funktioniert das denn bei dir?
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 31.03.2006 11:01:49

Such mal mit

Code: Alles auswählen

lsof -u benutzerkennung
nach Unterschieden zu den beiden Zeitpunkten, dort solltest du ansetzen.

Benutzeravatar
Baldrian
Beiträge: 290
Registriert: 13.05.2004 16:22:39

Beitrag von Baldrian » 31.03.2006 12:38:09

ähm...da kommt aber ne ganze menge bei raus...
wenn ich das ganze mit grep nach sound durchsuche ergeben sich da zumindest keine Unterschiede. Wonach soll ich denn suchen?
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Methusalix

das zehn Minuten danach Script..

Beitrag von Methusalix » 31.03.2006 18:53:34

Hallo,

bei dem, was ich oben geschrieben habe, hatte ich folgende Idee. Du machst
Dein Vorgehen davon abhängig, ob ein Prozeß aktiv ist oder schläft. Da bei mir zur
Zeit kein Sound läuft, wähle ich mal ein anderes Beispiel.

Code: Alles auswählen

ps aux | awk '$11~/gedit/ { print $11, $8 }'
liefert als Ergebnis:

Code: Alles auswählen

gedit S
Dabei kannst Du dann in Abhängigkeit von $8 im Zusammenhang mit
sleep 600 in Schleifen Aktionen wie shutdown ausführen.

Gruß
Matthias

Benutzeravatar
Baldrian
Beiträge: 290
Registriert: 13.05.2004 16:22:39

Beitrag von Baldrian » 31.03.2006 21:32:58

ok danke.
das werd ich mal ausprobieren
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Antworten