Hay muchas formas de hacerlo.
Método # 1 - ps
Puede usar el ps
comando para encontrar la ID del proceso para este proceso y luego usar el PID para matar el proceso.
Ejemplo
$ ps -eaf | grep [w]get
saml 1713 1709 0 Dec10 pts/0 00:00:00 wget ...
$ kill 1713
Método # 2 - pgrep
También puede encontrar la identificación del proceso usando pgrep
.
Ejemplo
$ pgrep wget
1234
$ kill 1234
Método # 3 - pkill
Si está seguro de que es lo único wget
que ha ejecutado, puede usar el comando pkill
para eliminar el trabajo por su nombre.
Ejemplo
$ pkill wget
Método # 4 - trabajos
Si está en el mismo shell desde donde ejecutó el trabajo que ahora está en segundo plano. Puede verificar si todavía se está ejecutando con el jobs
comando y también eliminarlo por su número de trabajo.
Ejemplo
Mi trabajo falso, sleep
.
$ sleep 100 &
[1] 4542
Encuentra su número de trabajo. NOTA: el número 4542 es la ID del proceso.
$ jobs
[1]+ Running sleep 100 &
$ kill %1
[1]+ Terminated sleep 100
Método # 5 - fg
Puede devolver un trabajo en segundo plano al primer plano con el fg
comando
Ejemplo
Trabajo falso, sleep
.
$ sleep 100 &
[1] 4650
Obtenga el número del trabajo.
$ jobs
[1]+ Running sleep 100 &
Traiga el trabajo # 1 de nuevo al primer plano y luego use Ctrl+ C.
$ fg 1
sleep 100
^C
$
jobs
no tieneoutput
yfg
EFS:-bash: fg: 1: no such job
. Pero escribirfg
funciona bien y tambiénpkill wget
funciona bien. perops -eaf|grep wget
y luego lakill <process number>
dosis no detiene el trabajo. ps: uso el tercer número como número de proceso .ps
. El 3er # es la identificación del proceso del padre.ps -eaef| grep [w]get
.pgrep
en su lugar,pgrep wget
.ps -eaf | grep [w]get
. Las opciones están en laps
página del manual.man ps
.En bash puedes usar
fg
para poner el trabajo en primer plano y luego usar Ctrl+CO enumere el proceso en segundo plano con
jobs
y luego haga(con 1 reemplazado por el número que
jobs
le dio)fuente
Igualmente puede usar
kill $!
para matar el trabajo en segundo plano más reciente.fuente
EDITAR: Una vez en primer plano, puede Ctrl+ C, o como @Zelda menciona, matar con el '% x' donde 'x' es el número de trabajo enviará la señal predeterminada (probablemente SIGTERM en el caso de Linux).
simplemente escriba
fg
para ponerlo en primer plano, si fue el último proceso que realizó en segundo plano (con '&').Si no fue el último, escriba:
jobs
y busque el 'número de trabajo', representado en '[]'. Luego simplemente escriba:..donde '2' es el número de trabajo, por ejemplo:
fuente
La forma correcta es escribir y
jobs
luego usar el número de trabajo para matarlo. Para usar el pid para matarlo, debes ponerlo en primer plano como se señala en la primera respuesta.Prueba esto
Si ejecuta trabajos justo después de matarlo, debería ver esto
fuente
Una cosa que no veo aquí, que he encontrado muy útil especialmente al probar comandos, es
pidof
. Puede usarpidof [command]
para encontrar la identificación de proceso de un proceso que se está ejecutando actualmente. Me gusta porque me permite encontrar rápidamente la identificación del comando que quiero, que generalmente es algo que acabo de invocar.Una vez que tenga el pid, simplemente puede matar el proceso. Permite crear scripts simples para matar un proceso solo si se está ejecutando actualmente.
fuente
Un ejemplo común es la
stress
herramienta. Digamos que ejecutó lo siguiente:y cerró la ventana de la terminal. El proceso continuaría consumiendo sus recursos desde el fondo.
Lo suyo es lo que hago:
pgrep
enumera los PID del proceso sometido y lo almacena en una variablex
que luego utilizakill -9
para terminarlo.fuente
en bash último proceso detenido (Ctrl-Z) matarás por:
o si quieres elegir, usa:
jobs
entonces:
kill %N
me gusta
kill %2
fuente