# [RISOLTO] Killare un processo da console usando il nome

## lsegalla

Se per far comparire i miei processi attivi dalla mod. testo io faccio

```
ps -u luca
```

Per uccidere il singolo processo "firefox" sempre dalla konsole dovrei annotarmi il numero del processo ed eseguire ad esempio poi

```
kill 13789
```

ma non potrei utilizzare ad esempio

```
kill firefox
```

(che potrebbe essermi utile ad esempio se si blocca spesso firefox diciamo, poi lasciamo perdere che si puo' fare con CTRL+ALT+ESC e che il problema va risolto, adesso son piu' sul curioso che resto...)

che voi sappiate esiste un modo o un comando dove richiamando da terminale il nome del processo io posso chiuderlo ?Last edited by lsegalla on Tue Dec 02, 2008 9:31 am; edited 1 time in total

----------

## devilheart

```
man killall
```

----------

## Elbryan

kill -9 `pgrep firefox`

----------

## crisandbea

pkill  nome_processo

----------

## lsegalla

```
killall firefox
```

questo mi funziona

 *Elbryan wrote:*   

> kill -9 `pgrep firefox`

 

questo non mi funziona

 *crisandbea wrote:*   

> pkill  nome_processo

 

questo funziona

Quindi hi risolto e vi ringrazio.

Una sola cosa, usando:

```
killall -l
```

 dovrei vedere la lista dei processi e vedo

```
luca@gentoo-linux ~ $ killall -l

HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM

STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS

UNUSED

```

invece con ps -u vedevo...

```
luca@gentoo-linux ~ $ ps -u luca

  PID TTY          TIME CMD

 5226 ?        00:00:00 gpg-agent

13583 ?        00:00:00 startkde

13621 ?        00:00:00 dbus-launch

13622 ?        00:00:00 dbus-daemon

13642 ?        00:00:00 kdeinit

13645 ?        00:00:00 dcopserver

13647 ?        00:00:00 klauncher

13649 ?        00:00:00 kded

13651 ?        00:00:00 gam_server

13656 ?        00:00:00 kwrapper

13658 ?        00:00:00 ksmserver

13661 ?        00:00:03 kdesktop

13663 ?        00:00:02 kicker

13664 ?        00:00:00 kio_file

13666 ?        00:00:00 kio_uiserver

13673 ?        00:00:03 artsd

13675 ?        00:00:00 knotes

13676 ?        00:00:02 kwin

13678 ?        00:00:00 klipper

13680 ?        00:00:00 knotify

13725 ?        00:00:15 wfica.bin

32164 ?        00:00:00 mozilla-launche

32174 ?        00:00:02 thunderbird-bin

32178 ?        00:00:00 gconfd-2

32206 ?        00:00:00 konsole

32207 pts/1    00:00:00 bash

32245 ?        00:00:16 firefox

32417 pts/1    00:00:00 ps

```

quindi se usassi killall per vedere la lista dei processi non ne capirei una mazza (anche se comunque funziona, il mio problema l'ho risolto)

----------

## fbcyborg

```
killall -l
```

 ti da la lista di tutti i nomi dei segnali conosciuti. (Manuale docet)

Perché secondo te dovresti vedere tutta la lista dei processi? Per quello c'è appunto ps.

----------

## lsegalla

 *fbcyborg wrote:*   

> 
> 
> ```
> killall -l
> ```
> ...

 

Ho semplicemente sbagliato a interpretare il man, supponevo qualcosa di simile ma non mi è chiaro il concetto di segnale.

----------

## fbcyborg

Purtroppo non è intuitivo capire cos'è un segnale se non si conoscono le basi di funzionamento di un sistema operativo.

Per farti un esempio (anche se forse ti sembrerà troppo strano), quando tu premi CTRL+C, stai mandando un segnale da tastiera al sistema operativo, ed in particolare il segnale è SIGINT. Questo segnale di Interrupt viene ricevuto da un processo in esecuzione quando premi per l'appunto CTRL+C. I segnali possono essere mandati ai processi anche tramite software (scritto in C per esempio), magari da un'altro processo.   :Wink: 

----------

## Peach

 *lsegalla wrote:*   

> Se per far comparire i miei processi attivi dalla mod. testo io faccio
> 
> ```
> ps -u luca
> ```
> ...

 

altra soluzione:

```
# pkill <nomeprogramma>
```

o se vuoi dargli proprio la mazzata finale

```
# kill -9 `pidof <nomeprogramma>`
```

----------

## djinnZ

Peccato che sigterm non chiuda i descrittori, non genereri il core dump come sigint (nei vecchi unix o sigabrt, default nei più datati, nei posix), possa lasciare zombie etc.

La buona creanza vuole prima un tentativo con sigint o sigquit (o sigabrt) e poi, se proprio non funziona o è ingnorato, sigterm.

Puoi anche procedere per file aperti con fuser&C se è per questo.

NB: killall manda il segnale a tutti i processi con quel nome, al di fuori del debugging o dello shutdown è altamente sconsigliato.

----------

## lsegalla

Ok, ho riletto piu' volte, poi alla fine ho capito... perchè interpretavo male la guida.

Praticamente con killall posso mandare vari tipi di segnali, questo prima non mi era chiaro anchese nella guida c'è scritto.

----------

