Powerknopf am PC benutzen?
Powerknopf am PC benutzen?
Hi,
irgendwie spinnt der Poweroff-Knopf (Auschalter) vom PC. Gibt es irgendein Script oder eine config-Datei die regelt, was passiert, wenn der Ausschalter gedrückt wird? Der Knopf macht bei mir nämlich folgendes:
1. Internetverbindung herstellen (warum auch immer???)
2. Dann unter meinem ersten Bediener (und im Anmeldungsmenü) den Rechner runterfahren, das ist okay, doch unter Root oder einem anderen, nach der Installation angelegten Bediener passiert gar nichts, der Knopf wird einfach ignoriert.
Kann mir jemand helfen? Irgendwie muß man das doch konfigurieren können, ich weiß blos nicht, wo.
PS: Ich benutze einen Desktoprechner, keinen Laptop.
irgendwie spinnt der Poweroff-Knopf (Auschalter) vom PC. Gibt es irgendein Script oder eine config-Datei die regelt, was passiert, wenn der Ausschalter gedrückt wird? Der Knopf macht bei mir nämlich folgendes:
1. Internetverbindung herstellen (warum auch immer???)
2. Dann unter meinem ersten Bediener (und im Anmeldungsmenü) den Rechner runterfahren, das ist okay, doch unter Root oder einem anderen, nach der Installation angelegten Bediener passiert gar nichts, der Knopf wird einfach ignoriert.
Kann mir jemand helfen? Irgendwie muß man das doch konfigurieren können, ich weiß blos nicht, wo.
PS: Ich benutze einen Desktoprechner, keinen Laptop.
Das ist der Inhalt meiner Datei:
--------------------------------------------------------------------------------------
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
# If powersaved is running, let it process the acpi event
if pidof powersaved; then
exit 0
fi
if ps -Af | grep -q '[k]desktop' && test -f /usr/bin/dcop
then
dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
else
/sbin/shutdown -h now "Power button pressed"
fi
----------------------------------------------------------------------------------------
Erste Frage; Was stellt denn da nun die Internetverbindung her?
Zweite Frage: Kann ich einfach alles löschen und nur
/sbin/shutdown -h now "Power button pressed"
stehen lassen, damit auf jeden Fall runtergefahren wird, oder ist das irgendwie gefahrlich?
--------------------------------------------------------------------------------------
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
# If powersaved is running, let it process the acpi event
if pidof powersaved; then
exit 0
fi
if ps -Af | grep -q '[k]desktop' && test -f /usr/bin/dcop
then
dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
else
/sbin/shutdown -h now "Power button pressed"
fi
----------------------------------------------------------------------------------------
Erste Frage; Was stellt denn da nun die Internetverbindung her?
Zweite Frage: Kann ich einfach alles löschen und nur
/sbin/shutdown -h now "Power button pressed"
stehen lassen, damit auf jeden Fall runtergefahren wird, oder ist das irgendwie gefahrlich?
das ist für mich jetzt auch nicht auf den ersten Blick erkennbar, warum da eine Internetverbindung aufgebaut wird, es sei denn das kommt von dcop. Du kannst natürlich einfach mal die Zeilen bis auf shutdown aukommentieren und schauen was passiert. Natürlich dabei nicht unbedingt die Facharbeit ungesichert geöffnet lassen... 
gruß,
npi

gruß,
npi
"Bis zur Unendlichkeit, und noch viel weiter!"
--Buzz, Toystory
--Buzz, Toystory
- novalix
- Beiträge: 1909
- Registriert: 05.10.2005 12:32:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: elberfeld
hallo und willkommen im forum,
das script ist nicht unbedingt aktiviert. um herauszufinden, ob es auch tatsaechlich ausgeloest wird, wenn du den powerbutton drueckst, solltest du die festgelegte aktion uebepruefen:
die ausgabe sollte dir zeigen welche "action" mit dem "event" druecken des powerbuttons verbunden ist.
sollte es das scriptsein, ist da eigentlich nichts zu bemaengeln. du solltest dann aber ueberpruefen, ob der powersave demon laeuft:
falls powersaved laeuft, schau mal in dessen konfigurationsdatei, ob dort eine andere "action" definiert ist. wobei ich mir ehrlich gesagt nicht vorstellen kann, dass irgendeine defaulteinstellung das oeffnen einer internetverbindung herbeifuehrt.
eine tieferliegende frage waere natuerlich: nutzt dein rechner ueberhaupt acpi? oder apm?
ciao, niels
das script
Code: Alles auswählen
/etc/acpi/powerbtn.sh
Code: Alles auswählen
less /etc/acpi/event/powerbtn
sollte es das script
Code: Alles auswählen
/etc/acpi/powerbtn.sh
Code: Alles auswählen
ps aux | grep powersaved
eine tieferliegende frage waere natuerlich: nutzt dein rechner ueberhaupt acpi? oder apm?
ciao, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.
Darum ist das Richtige selten, lobenswert und schön.
Erstmal vorweg:
ps aux | grep powersaved liefert als Ergebnis die Ausgabe:
frisil 27532 0.0 0.1 3920 828 pts/2 S+ 01:20 0:00 grep powersaved
leider kann ich damit überhaupt nichts anfangen. Kann mir jemand erklären, was die Werte bedeuten???
Die erste if-Verzweigung hab ich mal rausgenommen (war bei meinem alten Linux nämlich so) und ausprobiert, ob das script beim Drücken des Knopfes aufgerufen wird, indem ich play + mp3datei hinzugefügt habe. Und siehe da, das Sample wird beim Drücken des Powerknopfes gespielt.
Außerdem habe ich das /etc/acpi/powerbtn.sh script mal mit einem benutzer, der nicht abgemeldet wird, in einer Konsole laufen lassen. Dort erhalte ich folgende Ausgabe:
Kann ich diese seltsame if-Verzweigung nicht einfach auskommentieren und nur shutdown stehen lassen? Und wie und wo kann ich einstellen, daß shutdown, reboot und halt auch ohne superuser-Rechte ausgeführt werden können sollen?
Wäre schön, wenn jemand, der mehr Ahnung hat als ich, eine oder mehrere dieser Fragen beantworten könnte. Vielen Dank im Voraus!
ps aux | grep powersaved liefert als Ergebnis die Ausgabe:
frisil 27532 0.0 0.1 3920 828 pts/2 S+ 01:20 0:00 grep powersaved
leider kann ich damit überhaupt nichts anfangen. Kann mir jemand erklären, was die Werte bedeuten???
Die erste if-Verzweigung hab ich mal rausgenommen (war bei meinem alten Linux nämlich so) und ausprobiert, ob das script beim Drücken des Knopfes aufgerufen wird, indem ich play + mp3datei hinzugefügt habe. Und siehe da, das Sample wird beim Drücken des Powerknopfes gespielt.
Außerdem habe ich das /etc/acpi/powerbtn.sh script mal mit einem benutzer, der nicht abgemeldet wird, in einer Konsole laufen lassen. Dort erhalte ich folgende Ausgabe:
Das Problem scheint also dcop zu sein, bei dem Aufruf wird übrigens auch die rätselhafte Internetverbindung aufgebaut. Leider verstehe ich diese zweite IF-Verzweigung nicht (siehe Inhalt der Datei oben), kann mir jemand erklären, was das System dort macht (oder machen soll)? Und was soll diese Datei .ICEauthorityis im Verzeichnis eines anderen Bedieners (der bei der Installation angelegt wurde und auch runterfahren kann?)? Wenn ich versuche, die Zugriffsrechte auf die Datei zu ändern, werden sie wieder zurückgesetzt, sobald ich mich wieder als anderer Bediener einlogge. Wie setzte ich diese Variable überhaupt (und wo)? Ja, ich habe nicht viel Ahnung von Linux, bitte vergebt mir!Done.
WARNING: ICE authority file /home/bert/.ICEauthorityis not readable by you!
Please check permissions or set the $ICEAUTHORITY variable manually before
calling dcop.
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!
Kann ich diese seltsame if-Verzweigung nicht einfach auskommentieren und nur shutdown stehen lassen? Und wie und wo kann ich einstellen, daß shutdown, reboot und halt auch ohne superuser-Rechte ausgeführt werden können sollen?
Wäre schön, wenn jemand, der mehr Ahnung hat als ich, eine oder mehrere dieser Fragen beantworten könnte. Vielen Dank im Voraus!
- novalix
- Beiträge: 1909
- Registriert: 05.10.2005 12:32:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: elberfeld
an dem script brauchst du wirklich nichts aendern. die erste if-anweisung prueft nur, ob der powersaved laeuft und wuerde im positiven fall aus dem script aussteigen, und die aufgabe das event "druecken des powerknopfes" zu bearbeiten, an diesen weitergeben. der powersaved laeuft bei dir nicht. die ausgabe deines zeigt das. (der einzige job, der angezeigt wird, ist der soeben ausgefuehrte "liste alle prozesse und grep mir powersaved raus".
auch die zweite verzweigung in dem script loest mit sicherheit keine internetverbindung aus, sondern prueft lediglich, ob kde laeuft, um dann ein geordnetes runterfahren des rechners mit kde-mitteln (das ist der dcop-event) zu ermoeglichen. falls du kein kde nutzt ist es voellig ok die zeilen auszukommentieren, allerdings auch in keiner weise notwendig.
ich verweise noch mal auf meinen vorherigen post, in dem ich versucht habe, den ablauf zu skizzieren, der gestartet wird, wenn du den powerknopf betaetigtst und dein system tatsaechlich acpi nutzt. das von dir untersuchte script tritt eben nur dann in aktion, wenn diese bedingungen erfuellt sind und ist definitiv nicht dafuer verantwortlich, dass eine internetverbindung aufgebaut wird.
falls du einen 2.4er kernel verwendest, ist die wahrscheinlichkeit hoch, dass dein system apm verwendet und aus irgendeinem grund das druecken des powerknopfes als suspend/resume ereigniss interpretiert. da wird dann gerne mal ne ppp-verbindung neu aufgebaut. aber das ist spekulation.
schau mal ins proc verzeichnis und ueberpruefe, ob acpi oder apm laeuft. dann checke noch mal die events im jeweiligen konfigurationsverzeichnis oder und poste uns, was du herausgefunden hast.
ciao, niels
Code: Alles auswählen
ps aux | grep powersaved
auch die zweite verzweigung in dem script loest mit sicherheit keine internetverbindung aus, sondern prueft lediglich, ob kde laeuft, um dann ein geordnetes runterfahren des rechners mit kde-mitteln (das ist der dcop-event) zu ermoeglichen. falls du kein kde nutzt ist es voellig ok die zeilen auszukommentieren, allerdings auch in keiner weise notwendig.
ich verweise noch mal auf meinen vorherigen post, in dem ich versucht habe, den ablauf zu skizzieren, der gestartet wird, wenn du den powerknopf betaetigtst und dein system tatsaechlich acpi nutzt. das von dir untersuchte script tritt eben nur dann in aktion, wenn diese bedingungen erfuellt sind und ist definitiv nicht dafuer verantwortlich, dass eine internetverbindung aufgebaut wird.
falls du einen 2.4er kernel verwendest, ist die wahrscheinlichkeit hoch, dass dein system apm verwendet und aus irgendeinem grund das druecken des powerknopfes als suspend/resume ereigniss interpretiert. da wird dann gerne mal ne ppp-verbindung neu aufgebaut. aber das ist spekulation.
schau mal ins proc verzeichnis
Code: Alles auswählen
ls /proc
Code: Alles auswählen
/etc/acpi/events/
Code: Alles auswählen
/etc/apm/events.d/
ciao, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.
Darum ist das Richtige selten, lobenswert und schön.
So, habe alles nachgesehen, was du meintest:
acpi läuft und in den events steht powerbtn, das script wird ja auch aufgerufen (was man eindeutig daran merkt, daß das Sample gespielt wird, das ich dort eingetragen habe). Hier besteht also kein Zweifel mehr: powerbtn.sh wird ausgeführt, wenn der Knopf gedrückt wird.
Das Problem scheint mir diese nicht gesetzte $ICEAUTHORITY variable zu sein, dadurch kann dcop wohl nicht auf irgendwas zugreifen und sucht extern im Netzwerk??? Oder was meint "non-local host"? Wie und wo setzte ich denn die Variable, dies würde vielleicht helfen.
acpi läuft und in den events steht powerbtn, das script wird ja auch aufgerufen (was man eindeutig daran merkt, daß das Sample gespielt wird, das ich dort eingetragen habe). Hier besteht also kein Zweifel mehr: powerbtn.sh wird ausgeführt, wenn der Knopf gedrückt wird.
Leider doch! ich habe den dcop-Befehl mal in die Konsole eingegeben, sichergestellt daß keine Verbindung besteht und auch nichts anderes läuft, das eine Verbindung herstellen könnte. Dann enter gedrückt, und das System gibt folgendes aus:auch die zweite verzweigung in dem script loest mit sicherheit keine internetverbindung aus, sondern prueft lediglich, ob kde laeuft, um dann ein geordnetes runterfahren des rechners mit kde-mitteln (das ist der dcop-event) zu ermoeglichen....
...und ist definitiv nicht dafuer verantwortlich, dass eine internetverbindung aufgebaut wird.
Und bei diesen Fehlermeldungen geht die Verbindungslampe am Router an! Igrendwie scheint dcop ja eine externe Verbindung herstellen zu wollen. Ich habe nur keine Ahnung, was das soll!frisil@FrisilsBox:~$ dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
WARNING: ICE authority file /home/bert/.ICEauthorityis not readable by you!
Please check permissions or set the $ICEAUTHORITY variable manually before
calling dcop.
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host Kanotix
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!
frisil@FrisilsBox:~$
Das Problem scheint mir diese nicht gesetzte $ICEAUTHORITY variable zu sein, dadurch kann dcop wohl nicht auf irgendwas zugreifen und sucht extern im Netzwerk??? Oder was meint "non-local host"? Wie und wo setzte ich denn die Variable, dies würde vielleicht helfen.
- novalix
- Beiträge: 1909
- Registriert: 05.10.2005 12:32:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: elberfeld
nee, ne internetverbindung ist das nicht. der docp-server von kde nutzt unix-sockets, um seine aufgaben zu erledigen. das ist also so aehnlich wie das loopback-interface auf deinem rechner. es geht mit sicherheit kein datenverkehr nach draussen. warum er allerdings kanotix sucht und fuer non-local haelt weiss ich nu auch nich. wie stellst du eigentlich fest, ob ne verbindung nach "draussen" besteht? die lampen an meinem modem blinken auch ab und an, wenn gar kein rechner an der leitung haengt. ist halt ne blackbox. fuer mich beginnt da das internet und ich konzentriere mich auf das, was ich kontrollieren kann, oder glaube zu koennen.
sicher ist, dass bei dir unter kde die authorisierung zum bedienen dieses features nur fuer den voreingestellten benutzer funktioniert. das ist allerdings kein problem des powerbtn.sh scripts. kannst du denn als "weiterer" benutzer den rechner ueber den softwaredialog runterfahren? falls nicht, muesstest du die notwendigen rechte im kontrollzentrum unter anmeldungsmanager auch einstellen koennen.
happy hacking, niels

sicher ist, dass bei dir unter kde die authorisierung zum bedienen dieses features nur fuer den voreingestellten benutzer funktioniert. das ist allerdings kein problem des powerbtn.sh scripts. kannst du denn als "weiterer" benutzer den rechner ueber den softwaredialog runterfahren? falls nicht, muesstest du die notwendigen rechte im kontrollzentrum unter anmeldungsmanager auch einstellen koennen.
happy hacking, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.
Darum ist das Richtige selten, lobenswert und schön.
Doch, ne Internetverbindung ist das wohl, auch wenn vielleicht nichts übertragen wird. Ich sehe das an der DSL-Lampe an meiner Fritzbox, außerdem taucht es in meiner Abrechnung auf (habe einen Zeittarif mit sekundengenauer Abrechnung). Wo finde ich denn die DCOP Konfigurationsdatei, es muß doch eine geben. Wenn ich die mit der Datei von meinem alten Linux vergleiche, finde ich vielleicht raus, was die Verbindung herstellt. Diese wird nämlich auch beim voreingestellten Benutzer aufgebaut, nur dass der Rechner dann auch runterfährt. Über den KDE-Menüpunkt können alle User runterfahren, das funktioniert. Problem müßte also DCOP-Konfiguration und nichtgesetzte Variable sein. Auf diese Kontrolldatei des voreingestellten Benutzers kann nicht mal root richtig zugreifen, jedenfalls funktioniert dort der Powerknopf auch nicht. Also, kann mir irgendwer sagen wo die DCOP-Konfiguration steht oder wie und wo ich diese Variable setzten kann? Dank im Voraus!