Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Anwendung anhand eines ports terminieren?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Netzwerk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Holger
Gast





BeitragVerfasst am: 09. März 2003 16:46   Titel: Anwendung anhand eines ports terminieren?

man kennt es ja:
killproc -TERM /usr/local/bin/xyz-app
somit kille ich alle prozesse dieser ausführbaren datei. doch wie ist es nun wenn ich eine anwendung anhand eines ports kilen will?
also statt pfadangabe, muss man den port reinschreiben oder so, den die anwendung die gekillt werden soll an sich gebunden hat!

danke an alle hilfe!
 

Jochen
Gast





BeitragVerfasst am: 09. März 2003 19:13   Titel: Re: Anwendung anhand eines ports terminieren?

lsof erschlägt das Problem fast von alleine:
code:
#!/bin/bash
# Skript: killport
# Zweck: Killt Prozesse, die an einem bestimmten Port hängen
# Voraussetzungen:
# lsof

case $# in
0) echo "Nicht genügend Argumente." >&2
exit 1
;;
1) SIGNAL="-TERM"
PORT="$1"
;;
2) SIGNAL="$1"
PORT="$2"
;;
*) echo "Zuviel Argumente." >&2
exit 1
;;
esac

lsof -i :$PORT -t | xargs kill $SIGNAL

exit 0

lsof gibt nur die PIDs aus (-t) von Prozessen, die am übergebenen Port hängen (-i :$PORT). Das darf sowohl in der numerischen als auch in der textuellen Angabe erfolgen, also sind sowohl "25" als auch "smtp" gültig. Aus den PIDs bastelt dann xargs nur noch ein passendes kill-Kommando zusammen.(Zum Testen kann man zwischen "xargs" und "kill" noch ein "echo" setzen, dann sieht man, welches Kommando xargs zusammenbaut, ohne dass es ausgeführt wird.) Das case-Statement vorher ist nur dafür da, die übergebenen Parameter von der Anzahl her zu testen. Hier kann man das Skript auch noch etwas ausbauen, beispielsweise mit einer Usage-Meldung oder einer tiefergehenden Überprüfung der Parameter oder mit der Möglichkeit, mehr als nur einen Port zu übergeben usw.

Jochen
 

vi-vi
Gast





BeitragVerfasst am: 09. März 2003 19:33   Titel: Re: Anwendung anhand eines ports terminieren?

Hallo Holger

mir ist momentan nicht so richtig klar was Du damit bezweckst. An deiner stelle würde ich ewentuell mal über einen Packetfilter und/oder Proxy (für die Anwendungsschicht ) nachdenken. Das funktioniert von Außen und auch von Innen. Vieleicht solltest Du dir auch mal den Befehl "skill" ansehen mit ihm kannst Du z.B. Terminals (tty oder pty) oder User (komplett) usw killen.

mdMmDs vi-vi
 

Holger
Gast





BeitragVerfasst am: 30. März 2003 21:53   Titel: Re: Anwendung anhand eines ports terminieren?

es eght darum, das ich ein webinterface schreiben will, was ein programm (spezifisch HLDS Half-Life-Dedicated-Server) steuern soll. nun muss ich (da es ja sein kann das ich MEHRERE HLDS-Server mit verschiedenen ports habe) nur EINES dieser Programme anhand des PORTS terminieren. ich denke mit dem obigen script kommt man gut zu recht ... gibt es noch bessere (bzw. einfachere) methoden???
 

Jochen
Gast





BeitragVerfasst am: 31. März 2003 10:45   Titel: Re: Anwendung anhand eines ports terminieren?

Kenne den HLDS nicht weiter. Aber häufig schreiben Linux-Dienste ihre PID in eine Datei unter /var/run. Notfalls müsste man ein Startskript basteln, welches diese Aufgabe übernimmt. Abschiessen liessen sich die Server dann über ein "kill `cat /var/run/HLDS-X.pid`", mit X als einer eindeutigen Kennung für den Server. Das sollte man dann allerdings auch in das Kript packen und danach das .pid-File löschen.

Jochen
 

Holger
Gast





BeitragVerfasst am: 31. März 2003 15:43   Titel: Re: Anwendung anhand eines ports terminieren?

nun HLDS ist ein auf der GDB basienden routinen, welches sich einen von mir angewiesenen port krallt. kannst du mir ein beispiel geben WIE man die PID in die PID-FILE schreibt? das würde nähmlich ein sehr guter ausweg sein, um anzeigen zu lassen, welcher server LÄUFT und welcher nicht (je nachdem er eine PID hat oder eben nicht!).
danke aber erstmal an alle die bis hierher geholfen haben. hr habt mich echt ein grosses stück weitergebracht Smile))
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Netzwerk Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy