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
Please also mark the comments that contributed to the solution of the article
Content-Key: 96675
Url: https://administrator.de/contentid/96675
Printed on: April 23, 2024 at 21:04 o'clock
16 Comments
Latest comment
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;