![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd |
Karakter:
|
Display Modes |
|
|
|
||||
|
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 .... |
|
||||
|
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.. |
|
|||||
|
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 |
|
||||
|
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 |
![]() |
| Bogmærker |
| Tags |
| finde proces id, slå ihjel |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|