ubuntuusers.de

Prozess Auto kill Script

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

msebastian100

Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Hallo Leute ☺,

ich bin dabei ein Script welches alle Screens killen soll die zb."test,test1,test2, test3,test4.test5,... heißen".. ich habe dazu viele Foren gefunden aber ich bin daraus nicht schlau geworden. es muss ja theoretisch möglich sein, das man kill oder was ähnliches das dann alle Prozesse killt in denen "test" drin vor kommt zb. test,test1,test2, test3,test4.test5.

ich weiß dass es dazu schon mehrere Foren gibt wäre schön wen mir das einer in meinen Fall erklären würde.

Danke schon mal!

MfG Sebastian (msebastian100)

Moderiert von redknight:

Ins vermutlich richtige Forum verschoben

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13204

Mir ist nicht klar, geht es um

  • screen,

  • Prozesse mit einem bestimmten Namen oder Argument in der Kommandozeile oder

  • Fenster mit einem bestimmten Titel?

Vielleicht schaust Du mal bei pgrep oder pkill.

greenmoon

Anmeldungsdatum:
10. März 2010

Beiträge: 269

ich hab mir mal eine Funktion geschrieben die alle detached screens töten soll. Das ganze auf screens die test im Namen beinhalten umzuschreiben ist nicht so schwer. Das überlasse ich dir als Übungsaufgabe ☺ Sofern du wirklich von den screens sprichst und nicht irgendwas anderes von rklm genanntes meinst.

killscreens () {
    screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
}

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Sorry für meine Kleinkrämerei, aber Deine Befehlszeile (Z. 2) reizt gerade dazu, das alles mit awk zusammen zu fassen:

track@track:~$ screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}'
4196
track@track:~$ screen -ls | awk -F[\\t.] '/Detached/ {print $2}'
4196
track@track:~$ screen -ls | awk '/Detached/ {printf "%i\n",$1}'
4196 
  1. Die Zeilenauswahl kann awk sowieso ... ,
    aber wenn ich [TAB] ODER . als Feldtrenner nehme, steht in Feld 2 genau die Prozessnummer.

  2. Oder ich drucke das Feld ausdrücklich "als Integer-Zahl" formatiert - dann nimmt awk wirklich nur die 1. Integer-Zahl, egal wie die aussieht.
    (das dürfte n.b. auch die robusteste Variante sein !)

LG,

track

greenmoon

Anmeldungsdatum:
10. März 2010

Beiträge: 269

Interessant, danke schön ☺ Wobei ich mir vorstellen könnte das die lange Befehlskette für einen unerfahren Nutzer vielleicht doch lesbarer ist 😀

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Na, wenn es das ist: da kannst Du besser awk komplett weglassen, nur um das Wort auszuwählen:

track@track:~$ screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}'
4196
track@track:~$ screen -ls | grep Detached | cut -d. -f1 | cut -f2
4196 

LG,

track

greenmoon

Anmeldungsdatum:
10. März 2010

Beiträge: 269

Wäre auch noch eine Lösung. Ich wollte deine awk Lösungen auch gar nicht "schlecht reden", finde die wirklich interessant. Ich finde damit haben wir aber auch genug Wege geliefert wie man das ursprüngliche Problem lösen kann. ☺

Antworten |