Programm starten wenn lange keine Eingabe gemacht wurde.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Programm starten wenn lange keine Eingabe gemacht wurde.
Guten Tag,
ist es möglich ein Programm starten zu lassen, wenn der Benutzer den Computer nicht mehr benutzt, und ein anders Programm zu starten, wenn der Benutzer seine Arbeit fortfährt?
ist es möglich ein Programm starten zu lassen, wenn der Benutzer den Computer nicht mehr benutzt, und ein anders Programm zu starten, wenn der Benutzer seine Arbeit fortfährt?
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Ich glaube in der KDE-Energieverwaltung kann man ein Script ausführen lassen, wenn man das profiel ändert und das Profil kann man ändernl assen wenn man inaktiv ist.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
hi,
man könnte xscreensaver installieren und xscreensaver-command -watch benutzen. Ein Beispiel in perl gibt's hier unter "-watch":
http://linux.die.net/man/1/xscreensaver-command
Es ist auch möglich, die Zeit seit der letzten Eingabe abzufragen. Dazu braucht man wahrscheinlich ein kleines C-Programm, aber keinen screensaver, d.h. der Bildschirm(-inhalt) wird nicht beeinflusst.
man könnte xscreensaver installieren und xscreensaver-command -watch benutzen. Ein Beispiel in perl gibt's hier unter "-watch":
http://linux.die.net/man/1/xscreensaver-command
Es ist auch möglich, die Zeit seit der letzten Eingabe abzufragen. Dazu braucht man wahrscheinlich ein kleines C-Programm, aber keinen screensaver, d.h. der Bildschirm(-inhalt) wird nicht beeinflusst.
Beware of programmers who carry screwdrivers.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Ich habe kein grafische Oberflaeche.
daher dachte ich, dass man irgendwie alle Eingabegeraete auf eingabe abfragen kann.
daher dachte ich, dass man irgendwie alle Eingabegeraete auf eingabe abfragen kann.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Als root kannst du das über /dev/input/event. (Da kommt was raus, wenn du gerade tippst.) Alos vielleicht einen dauerloop, der immer für eine bestimmte Zeit in eine Datei schreibt. Undd dann wird dap Programm gestartet, wenn nichts in der Datei steht.
rot: Moderator wanne spricht, default: User wanne spricht.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
timeoutd kann Benutzer nach gewisser Zeit der Inaktivität automatisch ausloggen. Eventuell kann man es auch anders konfigurieren?
Ich denke aber wenn du etwas näher erklärst was da ganze eigentlich bezwecken soll hat jemand einen besseren Ansatz. Wenn du z.B. einen rechenintensiven Prozess starten willst der andere Benutzer nicht beeinträchtigt dann wäre es besser dem Prozess einfach eine geringe Priorität zu geben.
Ich denke aber wenn du etwas näher erklärst was da ganze eigentlich bezwecken soll hat jemand einen besseren Ansatz. Wenn du z.B. einen rechenintensiven Prozess starten willst der andere Benutzer nicht beeinträchtigt dann wäre es besser dem Prozess einfach eine geringe Priorität zu geben.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
das ganze soll bezwecken, dass rechenintensive programme ausgeschaltet werden, wenn jemand den Rechner benutzt. Wenn der Rechner nicht betaetigt wird, sollen Rechenintensive PRogramme mit -20 ausgefuerht werden.
/dev/input waere ein Ansatz, wenn man maus und tastatur gleichzeitig abfragen koennte.
/dev/input waere ein Ansatz, wenn man maus und tastatur gleichzeitig abfragen koennte.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Nimm das standard Linux-Scheduling für sowas. Du wirst definitiv mehr von deinem Script merken als von einem Rechenintensiven programm. Wenn du sowas am laufen hast merkst du davon gar nichts:
Nutzt du dynamische Prozessor-Taktung wird dein System sogar merklich schneller. (Weil der Prozessoer immer auf volldampf läuft.)
Beispielsweise bei meinem Netbook, wo die Prozessortaktung in HW war, ist das System durch rechenintensive Prozesse schneller geworden. (Anders siehts leider aus, wenn du ein sehr RAM intensives programm hast.)
Code: Alles auswählen
PID CLS RTPRIO PRI NI
4382 B 0 0 19
Beispielsweise bei meinem Netbook, wo die Prozessortaktung in HW war, ist das System durch rechenintensive Prozesse schneller geworden. (Anders siehts leider aus, wenn du ein sehr RAM intensives programm hast.)
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Das ist ein interesannter Ansatz, allerdings startet mein Script mehrere Programme(ungefaehr 100) die leider sehr viel RAM beanspruchen.wanne hat geschrieben:Nimm das standard Linux-Scheduling für sowas. Du wirst definitiv mehr von deinem Script merken als von einem Rechenintensiven programm. Wenn du sowas am laufen hast merkst du davon gar nichts:Nutzt du dynamische Prozessor-Taktung wird dein System sogar merklich schneller. (Weil der Prozessoer immer auf volldampf läuft.)Code: Alles auswählen
PID CLS RTPRIO PRI NI 4382 B 0 0 19
Beispielsweise bei meinem Netbook, wo die Prozessortaktung in HW war, ist das System durch rechenintensive Prozesse schneller geworden. (Anders siehts leider aus, wenn du ein sehr RAM intensives programm hast.)
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Ich würde e trotzdem mal ausprobieren. (Gerade bei Nicht grafischem Zeug ist der RAM nicht unbedingt das Problem.)
rot: Moderator wanne spricht, default: User wanne spricht.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Dachte ich es mir doch.. Also wenn niemand den Rechner benutzt und demnach keine konkurrierenden Prozesse laufen wird dein Programm durch eine Priorität von -20 auch nicht schneller ausgeführt als mit +19. Also einfach mal mit dem normalen scheduling probieren und sehen wie sich das auswirkt.rechenzentrum hat geschrieben:das ganze soll bezwecken, dass rechenintensive programme ausgeschaltet werden, wenn jemand den Rechner benutzt. Wenn der Rechner nicht betaetigt wird, sollen Rechenintensive PRogramme mit -20 ausgefuerht werden.
Man kann zwar mit "kill -STOP" und "kill -CONT" Prozesse anhalten und fortsetzen, aber das solltest du dann mit in das Skript einbauen dass die Prozesse startet. Und dann wäre zu überlegen ob man wirklich nach Tastatureingaben geht oder eventuell danach ob ein anderer Benutzer angemeldet ist.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Hallo Freunde,
mit Process scheduling kann ich das Problem nicht loesen.
Weil diese Programme die Festplatte, RAM und die Netzwerkleitung belegen.
Schon allein wegen des RAMs wuerde es bedeutetn, dass der Computer kurze Zeit stehen bleiben wuerde, um den genutzten Speicher auf die Festplatte zu lagern.
Ich werde wohl jemanden einstellen muessen, der mir ein Programm programmiert, dass alle Eingabegeraete ausliest und dann entsprechend meine gewuenschte Aktion ausfuehrt.
Danke fuer eure Hilfe!
mit Process scheduling kann ich das Problem nicht loesen.
Weil diese Programme die Festplatte, RAM und die Netzwerkleitung belegen.
Schon allein wegen des RAMs wuerde es bedeutetn, dass der Computer kurze Zeit stehen bleiben wuerde, um den genutzten Speicher auf die Festplatte zu lagern.
Ich werde wohl jemanden einstellen muessen, der mir ein Programm programmiert, dass alle Eingabegeraete ausliest und dann entsprechend meine gewuenschte Aktion ausfuehrt.
Danke fuer eure Hilfe!
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
rechenzentrum hat geschrieben:Ich habe kein grafische Oberflaeche.
/dev/input waere ein Ansatz, wenn man maus und tastatur gleichzeitig abfragen koennte.
benutzt da tatsächlich jemand eine Maus auf der Konsole? Oder läuft doch wenigstens ein xserver? Oder gibt's am Ende noch ganz andere Eingabegeräte?... alle Eingabegeraete ...
Beware of programmers who carry screwdrivers.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
ne nur maus und Tastatur.
Im normal Fall ist eine grafische Oberflaeche vorhanden.
Ich werde es wohl voruebergehend mit der sxcreensafer funktion versuchen muessen.
Im normal Fall ist eine grafische Oberflaeche vorhanden.
Ich werde es wohl voruebergehend mit der sxcreensafer funktion versuchen muessen.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Naja, Fürs Netzwerk und die HD ist das auch kein Problem.rechenzentrum hat geschrieben:mit Process scheduling kann ich das Problem nicht loesen.
Weil diese Programme die Festplatte, RAM und die Netzwerkleitung belegen.
Na ob du jetzt input0 oder input0 und input1 abfragsit ist ja wohl wurst.cosmac hat geschrieben:/dev/input waere ein Ansatz, wenn man maus und tastatur gleichzeitig abfragen koennte.
Aber
r900 hat geschrieben:Und dann wäre zu überlegen ob man wirklich nach Tastatureingaben geht oder eventuell danach ob ein anderer Benutzer angemeldet ist.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 76
- Registriert: 09.06.2011 03:45:35
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Leider soll auch ein Programm gestartet werden, das mit der Graka Texturen umwandelt.
Die Programme muessen also beendet werden.
/dev/input liest die hardware eingabe aus. Es muss also nicht beachtet werden, ob noch andere User eingeloggt sind. Es kann durchaus sein, dass 2 User eingeloggt sind.
Wenn 10 Minuten keine Eingabe gemacht wurde, sollen die rechen intensiven Programme(4-Prozesse) gestartet werden.
Die Programme muessen also beendet werden.
/dev/input liest die hardware eingabe aus. Es muss also nicht beachtet werden, ob noch andere User eingeloggt sind. Es kann durchaus sein, dass 2 User eingeloggt sind.
Wenn 10 Minuten keine Eingabe gemacht wurde, sollen die rechen intensiven Programme(4-Prozesse) gestartet werden.
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
man batch
batch executes commands when system load levels permit; in other words, when the load average drops below 1.5,
or the value specified in the invocation of atd.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Um /dev/input/event* zu überwachen, hab' ich mal ein kleines Programm gebastelt: 36762. Wenn (z.B.) 10 Minuten lang von keinem der Eingabegeräte Daten kommen, startet es ein Script (idle_script). Sobald eine Taste gedrückt wird oder eine andere Eingabe erfolgt, wird ein anderes Script (busy_script) aufgerufen.
Das funktioniert für die Text-Konsole und die grafische Oberfläche, unabhängig vom xserver und von allen anderen Programmen. Wenn das Programm aus /etc/rc.local heraus gestartet wird, kann der xserver beliebig beendet und neu gestartet werden. Hotplug ist bedingt möglich, das Programm sucht per Default alle 30 Sekunden nach neuen Geräten, egal ob der udevd läuft oder nicht. Man kann die Gerätedateien und passende Berechtigungen statisch, per udev oder (vorzugsweise) per devtmpfs erzeugen.
Ohne angepasste Berechtigungen muss das Programm als root laufen, dann laufen auch die Scripte mit root-Rechten, d.h. sie dürfen nicht für andere User beschreibbar sein! Andererseits hat man nur so alle Möglichkeiten, per Script beliebige User-Programme zu beeinflussen. Die Gerätedateien für alle lesbar zu machen ist auch ein schlechter Plan, weil dann jeder fremde Tastatureingaben mitschneiden kann.
Außer gcc und libc6-dev sollte zum übersetzen nicht allzu viel nötig sein. Mal angenommen, man nennt das Programm "idle_event.c", dann sollte das hier ohne Meldungen durchlaufen:
Das funktioniert für die Text-Konsole und die grafische Oberfläche, unabhängig vom xserver und von allen anderen Programmen. Wenn das Programm aus /etc/rc.local heraus gestartet wird, kann der xserver beliebig beendet und neu gestartet werden. Hotplug ist bedingt möglich, das Programm sucht per Default alle 30 Sekunden nach neuen Geräten, egal ob der udevd läuft oder nicht. Man kann die Gerätedateien und passende Berechtigungen statisch, per udev oder (vorzugsweise) per devtmpfs erzeugen.
Ohne angepasste Berechtigungen muss das Programm als root laufen, dann laufen auch die Scripte mit root-Rechten, d.h. sie dürfen nicht für andere User beschreibbar sein! Andererseits hat man nur so alle Möglichkeiten, per Script beliebige User-Programme zu beeinflussen. Die Gerätedateien für alle lesbar zu machen ist auch ein schlechter Plan, weil dann jeder fremde Tastatureingaben mitschneiden kann.
Außer gcc und libc6-dev sollte zum übersetzen nicht allzu viel nötig sein. Mal angenommen, man nennt das Programm "idle_event.c", dann sollte das hier ohne Meldungen durchlaufen:
Code: Alles auswählen
cc -Wall -Wextra -pedantic -O -o idle_event idle_event.c
Beware of programmers who carry screwdrivers.
Re: Programm starten wenn lange keine Eingabe gemacht wurde.
Naja, du kannst doch vor dem Ausführen von idle_script die rechte dropen.
rot: Moderator wanne spricht, default: User wanne spricht.