[linux] script om processen te stoppen

Pagina: 1
Acties:

  • ruuds
  • Registratie: Maart 2001
  • Laatst online: 07-08 15:46
Hallo,

ik ben met een opdracht voor school bezig. een scriptje dat je uitvoert met als argument een username.
Als het gestart is laat het script alle processen van deze user zien, met de vraag [j/n] of dit process gestopt moet worden.

nou vraag ik de processen van gebruiker 'ruud' op met
code:
1
ps -aux | grep ruud

resultaat:
code:
1
2
ruud    4916 0.0  1.9  2252 1208 tty1    S   18:40   0:00 login -- ruud
etc...

Hoe selecteer ik nu het 2e veld (PID_ en het 11e veld (procesnaam)

ik weet dat het op een of andere manier met het cut filter moet, waar ik een scheidingsteken kan opgeven. Als er dus als username bla is, is de ruimte in het resultaat groter. Is dit een tab ofzo die ertussen staat? hoe moet ik dit oplossen.

Nu moet ik de PID en procesnaamvelden uit het resultaat krijgen

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

waarom gebruik je geen "ps -U <gebruiker>"

En kolommen selecteren kun je misschien het beste doen met awk

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • monkel
  • Registratie: Januari 2001
  • Laatst online: 15-08 23:34
met awk moet het lukken

man awk

wat ben ik weer aardig:
code:
1
|awk '{print$2}'

er achteraan zetten

Verwijderd

met deze command:
code:
1
ps aux | grep username | awk '{print$2,$11'}

;)

Verwijderd

`ps -aux | grep ruud | tr -s ' ' ':' | cut -f2 -d: >.veld2temp`
`ps -aux | grep ruud | tr -s ' ' ':' | cut -f11 -d: >.veld11temp`
aantal=`wc -l .veld2temp`
tel=1
while expr $tel < $aantal
do
veld2=`head -tel .veld2temp | tail -1`
veld11='head -tel .veld11temp | tail -1`
echo 'wilt u $veld2 $veld11 stoppen j n : '
read keuze
if test $keuze = 'j'
then
kill -9 $veld2
fi
tel=`expr $tel + 1`
done
rm .veld2temp
rm .veld11temp

ik heb hier geen linuxbak om te controleren of dit helemaal werkt maar zo moet het in iedergeval (bijna) helemaal werken