The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > UNIX for Advanced & Ekspertsøgning Brugere
.
google unix.com



UNIX for Advanced & Ekspertsøgning Brugere Expert-til-ekspert. Lær avancerede UNIX, UNIX-kommandoer, Linux operativsystemer, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
OB b / n dræbe og dræbe -9 ammu UNIX for Advanced & Ekspertsøgning Brugere 2 07-18-2007 06:29 PM
kill (0, -9) ikke dræbe processen umen Højtstående Programmering 9 06-19-2007 07:09 AM
ikke i stand til at dræbe finde med kill -9 Amardeep UNIX for dummyer Spørgsmål & svar 5 01-04-2007 05:49 PM
Kill PID, intern bør dræbe en anden PID. rkrgarlapati Shell Programmering og Scripting 4 10-17-2006 08:47 AM
Når dræbe doesnt arbejde, hvordan man dræber en proces? VijayHegde UNIX for Advanced & Ekspertsøgning Brugere 3 05-12-2006 05:24 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Karakter: Thread Rating: 1 votes, 2.00 average. Display Modes
  #1 (permalink)  
Old 08-02-2008
luckypower luckypower is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Stillinger: 6
Kill uden PID

Hellow Eksperter

Jeg har et problem.
Jeg køre et script i backgroun.
og jeg ønsker at dræbe, at script med kun script navn .....
Så hvad er løsningen ..

for din info
mit script navn er "testscript" n det indeholder "sleep 100"

tak ....
  #2 (permalink)  
Old 08-02-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Hvis dit system har pidof, Så brug det. Ellers er den sædvanlige løsning er at køre grep på en ps notering af dine processer og bruge til at finde den PID at overgå til slå ihjel. Men et naivt forsøg vil have det problem, at den vil befinde sig i den proces notering, og begår selvmord i stedet for at dræbe de tilsigtede mål. Den rette løsning for dette er at bruge et regulært udtryk, som ikke umiddelbart passer sig selv som søgestrengen.

Desværre er optioner og outputformat af ps varierer fra det ene system til det andet. Følgende virker for mig på en nyere version af Ubuntu.


Code:
ps t | awk '$5 ~ /^[t]estscript/ { print $1 }' | xargs -r kill

Brugen af [t] i stedet for bare en plain t er den løsning til "script vil dræbe sig selv" problem. Brugen af xargs-r forhindrer slå ihjel fra at blive kørt, hvis der ikke er nogen kampe (der kun ville være en advarsel om at køre slå ihjel med nogen argumenter, så det er ikke et meget alvorligt problem).

Muligheden t og området numre $ 1 og $ 5 måske skal ændres til dit system. Hvis du google for en lignende løsning til din platform, ser ud for de ovenfor beskrevne problemer. Af stilistiske grunde, en enkelt awk script bør foretrækkes frem for, hvad der er kærligt kaldes Useless Brug af grep.

Sidst redigeret af æra; 08-02-2008 på 04:44 AM..
  #3 (permalink)  
Old 08-26-2008
ddreggors ddreggors is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Stillinger: 91
Citat:
Oprindeligt Indsendt af epoke View Post

Code:
ps t | awk '$5 ~ /^[t]estscript/ { print $1 }' | xargs -r kill

Det er ok æra, vil jeg gøre det for dig
  #4 (permalink)  
Old 08-02-2008
Neo's Avatar
Neo Neo is online now Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Beliggenhed: Asia Pacific
Indlæg: 6.781
Hvis du bruger Linux, kan du bruge killall kommando til at dræbe en proces med processen navn (e) (ikke PID).

Se for eksempel: killall (1): kill processer ved navn - Linux mand side

Se alle, pkill: http://linux.die.net/man/1/pkill
  #5 (permalink)  
Old 08-02-2008
luckypower luckypower is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Stillinger: 6
Jeg fik den løsning
Anvendelse
dræbe «ps-C test.sh-o pid \u003d`
  #6 (permalink)  
Old 08-02-2008
Neo's Avatar
Neo Neo is online now Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Beliggenhed: Asia Pacific
Indlæg: 6.781
På Linux, kan du simpelt type:

killall testscript
  #7 (permalink)  
Old 08-02-2008
frygtindgydende redoubtable is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Beliggenhed: Portugal
Posts: 242
Noget simpelt:
killall procname

En anden måde:
i dit script, skal du oprette en midlertidig fil, som opbevarer den nuværende pid af dine script. Når du ønsker at afslutte processen, bruge det som sådan: kill -9 `cat pidfile«

Hvis du vil have noget meget konkret og præcis:
- Setuid () til en anden bruger, som kun kører denne proces (script)
- Pkill -9-u youruser
Du kan også bruge pkill til at dræbe alle processer ved hjælp af en vis terminal pkill -9-t pts / 1
Closed Thread

Bogmærker

Tags
finde proces id, slå ihjel

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 06:37 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0