Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

estrattore di PID con grep

Per tutti i tuoi problemi Linux entra qui e risolvili!

Moderatori: gunter, zendune

estrattore di PID con grep

Postdi JClark » 08/10/04 09:27

Ciao a tutti

goal: creare uno kill di processi parametrizzato

vorrei uno script (es. mykill) al quale passare il nome del processo da terminare.

con il comando

ps aux | grep <nomeprocesso> | grep -v grep

riesco ad estrarre solo quello che mi serve, senza la duplicazione della riga del grep stessa.

A questo punto però non riesco ad estrarre con cut il campo PID che mi serve e, nel caso non esista un output (non esiste il processo indicato), non so come chiudere lo script.

Visto che ci sono esagero ... se lo script trova un PID, come faccio a farmi comparire un msg di richiesta di conferma per la cancellazione ?

Se qualcuno ha un indicazione per un sito dove trovare info per la realizzazione, va pure meglio :lol:, così magari riesco a trovare anche qualcosa di più 8)

Grazie e ciao
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Sponsor
 

Postdi JClark » 25/10/04 16:28

Ciao a tutti

mi autorispondo e posto la soluz così magari torna utile a qualcun altro ;)

Creare uno scrippettino che contenga queste righe
#!/bin/bash
kill -9 `ps ax | grep $1 | grep -v grep | awk '/$1/ { print $1 }'`

Dargli la possibilità di essere eseguito con un bel chmod

Adesso basterebbe parametrizzarlo un po' in modo da permettere all'utente di specificare quale processo killare, verificare se è stato passato un nome processo allo script, se questo processo esiste e magari chiedere conferma prima di eseguire ...

ma questa è un'altra storia :lol:

P.S.
I caratteri speciali se non li avete li ottenete così
` = ALT + 96
{ = ALT + 123
} = ALT + 125
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Postdi disgrazia » 25/10/04 18:52

Solo un paio di cose:
  • sei sicuro di voler usare "kill -9"? E' una maniera un po' brutale (SIGKILL) di terminare un processo, io preferirei mandargli un "kill" senza ulteriori parametri (cioè un SIGTERM), che eventualmente dà modo al processo di eseguire qualche ultima operazione...
  • nello script forse era più elegante un "kill `ps -o pid -C $1 h`"...
    ...poi se mi mandi a quel paese dicendomi che potevo dirtelo prima c'hai anche ragione :D
disgrazia
Download Admin
 
Post: 708
Iscritto il: 08/07/02 22:16

Postdi JClark » 26/10/04 07:29

No prob. Disgrazia, ho raggiunto l'illuminazione :idea: per un'altra via ... anche questo è hacking ;)

Non capisco però gli switch del comando (ipotizzando di mettere $1=konsole)

ps -o pid -C $1 h

-o (output format) mi pare restituisca il campo PID
-C (selection by list) by command name, credo individui il processo da cercare
h ????

cosa dovrebbe visualizzarsi ?
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Postdi disgrazia » 27/10/04 18:41

l'opzione "h" evita che venga stampato l'intestazione (header) di ogni colonna:

disgrazia@underground:~$ ps -o pid -C juk
PID
2724

disgrazia@underground:~$ ps -o pid -C juk h
2724
disgrazia
Download Admin
 
Post: 708
Iscritto il: 08/07/02 22:16


Torna a Software Linux


Topic correlati a "estrattore di PID con grep":

comando grep
Autore: nabla
Forum: Software Linux
Risposte: 3

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti