Skript, das bestimmte Prozesse für bestimmte User killt
Hallo,
ich habe hier folgendes Setup. Es gibt 2 VNC Server, die auf OpenSuSe 10.3 laufen und auf denen sich jeweils ca. 50 User tummeln.
Hin und wieder kommt es dabei zu Abstürzen einzelner Prozesse. Sehr beliebt ist bspw. ein Crash vom Firefox.
Ich habe bereits xkill eingebunden und damit kann der noch sichtbare FF Prozess auch vom User selber abgeschossen werden, aber meistens verbleibt noch ein versteckter toter Prozess, der davon nicht erfasst wird.
Ich brauche also ein Skript, das den Usernamen des gerade angemeldeten VNC Users herausfindet und alle Firefox-Prozesse, die zu diesem User gehören, abschießt. Ich will das Skript dann in icewm einbinden, damit die Leute nicht dauernd zum Prozess killen anrufen.
Kann mir da jemand weiterhelfen? Ich erwarte auch kein fertiges Skript (obwohl ich mich natürlich nicht dagegen wehren würde ;) ), aber da meine Skriptingfähigkeiten ungefähr so gut sind, wie die Doppelklickfähigkeit meiner Mama, ;) bräuchte ich zumindest ein paar Lösungsansätze.
Vielen Dank
Sven
ich habe hier folgendes Setup. Es gibt 2 VNC Server, die auf OpenSuSe 10.3 laufen und auf denen sich jeweils ca. 50 User tummeln.
Hin und wieder kommt es dabei zu Abstürzen einzelner Prozesse. Sehr beliebt ist bspw. ein Crash vom Firefox.
Ich habe bereits xkill eingebunden und damit kann der noch sichtbare FF Prozess auch vom User selber abgeschossen werden, aber meistens verbleibt noch ein versteckter toter Prozess, der davon nicht erfasst wird.
Ich brauche also ein Skript, das den Usernamen des gerade angemeldeten VNC Users herausfindet und alle Firefox-Prozesse, die zu diesem User gehören, abschießt. Ich will das Skript dann in icewm einbinden, damit die Leute nicht dauernd zum Prozess killen anrufen.
Kann mir da jemand weiterhelfen? Ich erwarte auch kein fertiges Skript (obwohl ich mich natürlich nicht dagegen wehren würde ;) ), aber da meine Skriptingfähigkeiten ungefähr so gut sind, wie die Doppelklickfähigkeit meiner Mama, ;) bräuchte ich zumindest ein paar Lösungsansätze.
Vielen Dank
Sven
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96675
Url: https://administrator.de/contentid/96675
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
16 Kommentare
Neuester Kommentar
Ich bin kein Freund von Bash. Hier mal eine Beispiel-Lösung in Perl:
#!/usr/bin/perl -w
# UID mit Hilfe von 'whoami' und der /etc/passwd ermitteln
# Username ermitteln
my $username = `whoami`;
# Zeilenumbruch entfernen
chomp($username);
# Zugehoerige Zeile aus der /etc/passwd holen
my $tmp = `grep $username /etc/passwd`;
# Zeile in ein Array splitten
my @temparr = split(/:/, $tmp);
# der 3. Wert im Array enthaelt die numerische UID
my $uid = $temparr[2];
# Befehl zusammenbasteln
my $cmd = "kill -9 `ps awxu | grep firefox | grep $uid | awk '{print \$2}'`";
# Befehl ausfuehren
my $out = `$cmd`;
# ggf. Output des Befehls ausgeben
print $out;
exit 0;