'Beenden'-Button über die Linux-Shell erreichen ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Hi,
in meinem Script gibt es eine Funktion 'def beenden():', die ein 'root.destroy()' auslöst.
Da das Ding jetzt auf einem Server läuft, den ich nur noch per Shell erreiche, möchte ich das root.destroy() per Shellkommando auslösen. Geht das ?
Gruss, Seven
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Code: Alles auswählen

kill -USR1 `PID`
zusammen mit einem entsprechenden Signalhandler für USR1 (siehe das signal-Modul, ist gut dokumentiert in der Python-Doku) der root.destroy() aufruft sollte gehen. Sonst: keine Chance, außer Du arbeitest mit xvnc oder was ähnlichem und löst das Event lokal = von einer verbundenen X-Session aus.
--- Heiko.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

snakeseven hat geschrieben:Da das Ding jetzt auf einem Server läuft, den ich nur noch per Shell erreiche, möchte ich das root.destroy() per Shellkommando auslösen.
Hi Seven!

Das klingt jetzt sicher schon abgedroschen:

Prüfe in deinem Programm in einem eigenen Thread alle paar Sekunden ob eine Datei (z.B. /abc/stoppe_mich.txt) existiert. Wenn Ja, dann führe "root.destroy()" aus.

Das Shell-Kommando zum Stoppen deines Programmes lautet dann:

Code: Alles auswählen

touch /abc/stoppe_mich.txt
Beim Start deines Programmes solltest du dann aber auch eine eventuell noch vorhandene /abc/stoppe_mich.txt löschen, bevor du den Thread startest.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Danke für's erinnern Gerold, der einfachste Weg fällt mir natürlich nicht ein. ;-)
--- Heiko.
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Hi,
ich bin faul und hab mir jetzt ein kleines bash-script gebastelt:
#! /bin/sh
killall /home/EXEC/Modul_Handler
killall /home/EXEC/Modul_1
killall /home/EXEC/Modul_2
killall /home/EXEC/Modul_3
killall /home/EXEC/Modul_4
killall /home/EXEC/Modul_5
killall /home/EXEC/Modul_6
killall /home/EXEC/Modul_7
killall /home/EXEC/Send_MP3
Soll ja nur für den Notfall sein. Ansonsten sind die Scripte ja immer aktiv.
Danke aber !
Seven
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Warum fragst du nach einer Lösung zu deinem Problem, wenn du diese Lösung dann doch nicht benutzt?
mfg

Thomas :-)
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Python Master 47 hat geschrieben:Warum fragst du nach einer Lösung zu deinem Problem, wenn du diese Lösung dann doch nicht benutzt?
Du hast völlig recht (*schäm*), aber ich habe von Bash-Scripten erst heute von einem Freund gehört. Ich bin noch nicht so fit in Linux und habe einfach zu kompliziert gedacht. Dennoch bin ich mir sicher, daß man die Tipps von Modelnine und Gerold an anderer Stelle gut gebrauchen kann ! Irgendwann steht bestimmt jemand wieder vor dem Problem (vieleicht ja ich selbst ?), per Shell-Command Einfluss auf seine Scriptausführung nehmen zu wollen.

Gruss, Seven
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Das war auch nicht böse gemeint, mich hat es blos mal interresiert! :wink:
mfg

Thomas :-)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

modelnine hat geschrieben:Danke für's erinnern Gerold, der einfachste Weg
Hi modelnine!

Das war gar nicht so gemeint. :? Ich dachte nur daran, wie es auch unter Windows funktionieren könnte.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Das war gar nicht so gemeint.
Dann haste meinen Kommentar falsch verstanden. ;-)

Es ging mir nur darum, dass es natürlich immens einfacher ist einfach zu gucken ob eine bestimmte Datei da ist oder eben nicht, als dass man sich die ganzen Dinge antut die mit Signal-Behandlung zu tun haben. Ich bin im Moment dabei einen Daemon in Python zu implementieren, deswegen hab ich mir über solche Dinge auch Gedanken gemacht (bzw. mache sie mir im Moment), und da gabs halt als einzige sinnvolle Lösung nur die Signale. Aber dafür, was snakeseven machen will reicht die Möglichkeit mit einer Signaldatei allemal. Wie gesagt, eher ein Fall von: "man sieht den Wald vor lauter Bäumen nicht..." ;-)
--- Heiko.
Antworten