Uccidere un lavoro in Ubuntu


22

Questa è probabilmente una domanda frequente, ma non sono stato in grado di trovare una buona documentazione.

Ho lavori in esecuzione sul mio sistema:

foo@fooBox:~/tmp$ jobs
[1]+  Stopped                 foo bar baz

Come posso uccidere questo processo? Ho provato vari comandi, come kill 1, ma non ha funzionato.


in alternativa, $ fg [invio] [ctrl-c]: p
bubu

@bubu: non funzionerà per alcuni programmi che catturano SIGINT, come vim.
Wuffers,

@Mark Szymanski Lo sapevo, lo sapevo: p
bubu,

Risposte:


32

Puoi usare il metodo suggerito da @fideli, oppure puoi usare il killcomando in questo modo:

kill %1

Questo ucciderà il primo comando sospeso. Puoi anche trovare un elenco di comandi sospesi in questo modo:

jobs

e fornirà un output del genere:

[1]+  Stopped                 yes

Se sono presenti più lavori interrotti, il numero tra parentesi ( [1]) sarà il numero del lavoro, quello fornito dopo %il killcomando.


Questo è fantastico! Ho imparato qualcosa di nuovo kill.
fideli,

1
Come mai ho capito -bash: kill: (3593) - Operation not permitted. Quando lo uso con sudo, ottengo questokill: %1: invalid process id
CMCDragonkai,

1
@CMCDragonkai Hai riscontrato una situazione in cui il comando che hai eseguito è ora di proprietà di un altro utente perché l'hai utilizzato sudo, quindi non puoi ucciderlo, ma eseguirlo killutilizzando sudonon hai più accesso all'elenco dei lavori dell'utente (prova correre sudo jobsa vedere cosa intendo). Invece, poiché ora hai il PID, esegui semplicemente sudo kill 3593.
Morloch,

Come può un processo in background essere di proprietà di un altro utente?
CMCDragonkai,

6

Se esegui ps ax, otterrai un elenco di tutti i processi in esecuzione. Cerca quello che vuoi uccidere e annota il numero nella PIDcolonna. Ad esempio, dire che il numero era 10203, quindi eseguire:

kill 10203

Puoi anche eseguire ps ax | grep fooper trovare il programma esatto che stai cercando. Infine, puoi eseguire:

killall foo

per uccidere tutti i casi di foo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.