Cómo terminar el ping <dest> &

9

El comando

ping <dest> &

hace que el ping pase al fondo. Sin embargo, todavía imprime la salida al terminal. Ctrl-C no lo detiene, solo introduce una nueva solicitud. ¿Cómo detenerlo desde la terminal?

Vineet
fuente
Además de las respuestas, hay una manera de limitar naturalmente pinglas iteraciones con un conteo -c N, donde N es un número positivo.
l0b0
1
@ l0b0 Sí, es cierto, pero me enfrenté a este problema en particular, y en realidad está relacionado con cualquier programa en el que no conozcamos el tiempo de ejecución, o donde ni siquiera esté definido. Entonces, quiero preguntar cómo detener el proceso.
Vineet

Respuestas:

24

Primero ingrese fgen la misma terminal que pingestá ejecutando su comando (pone el proceso en primer plano), luego presione Ctrl+ cpara detener el proceso.

ingrese la descripción de la imagen aquí

Ravexina
fuente
Esto funciona. También me di cuenta de que fg funciona si tenemos múltiples procesos en segundo plano, llamándolos al primer plano uno por uno.
Vineet
Sí, así es como funciona, puede usar jobspara obtener una lista de procesos que se ejecutan en segundo plano.
Ravexina
¿Cómo hiciste ese bucle de imagen?
phillipsk
3
@phillipsk Es GIF, así es como funciona GIF ...
Ravexina
1
@Seth Oh ... en ese caso, capturé el video usando "Kazam" y luego lo convertí a gif usando ffmpeg.
Ravexina
14

Si es tu único trabajo en segundo plano, puedes matarlo kill %1. Si no está seguro, puede enumerar todos sus trabajos en segundo plano jobsy usarlos kill %<n>donde reemplaza n por el número de su trabajo de ping.

muclux
fuente
44
Además, descubrí que n coincide con el número que se imprime entre corchetes al ejecutar el comando.
Vineet
7

Cuando se envía un proceso a un segundo plano, ya sea mediante el uso de ctrl- zo &al final de la orden, se obtiene una salida en el siguiente formato: [index] process-id. Si envía múltiples procesos a segundo plano, el índice seguirá incrementándose cada vez.

Por ejemplo:

$ sleep 100 &
[1] 41608
$ sleep 101 &
[2] 41609
$ sleep 102 &
[3] 41610
$ sleep 103 &
[4] 41611
$ sleep 104 &
[5] 41612
$ sleep 105 &
[6] 41613
$ sleep 106 &
[7] 41614

Para detener uno específico, puede usar kill <process-id>o usar fg <index>seguido de ctrl-c

Ejemplo usando la salida anterior:

$ kill 41614

o

$ fg 7
sleep 106
^C
Dan
fuente
3

Inicie una nueva pestaña de terminal, ejecute:

$ pgrep ping
  2564

Luego mata al pid usando el killcomando:

$ kill 2564
Liso
fuente
También utilicé kill en el mismo terminal (aunque la salida lo hizo difícil de usar). Sin embargo, me preguntaba qué hacer si no podía retroceder mucho en la terminal para ver la identificación del proceso impresa, por lo que pgrep también ha ayudado.
Vineet
3
Cuando usa pgreppara buscar procesos por nombre, también puede usar pkillpara matarlos por nombre. No es necesario escribir / copiar la identificación y el uso del proceso kill.
Byte Commander
Es útil saberlo, pero para esta pregunta es un poco exagerado . :-p
tu-Reinstate Monica-dor duh
0

Cuando eres root, es simple killall ping.

Hijo sim
fuente
Gracias por matar mi sesión de ping que estaba ejecutando en la misma máquina - un compañero de trabajo
Oscar
0

Un enfoque ligeramente diferente hacia un ping continuo es usar la opción -c e ingresar la cantidad de tiempo que desea que se ejecute, de esa manera se detendrá después del conteo deseado, es decir, el ping debajo se detendrá después de 100 pings

ping -c 100 192.168.1.1 y

Ibraheem
fuente
0

Solo usa:

kill -9 %%

y matará el proceso de fondo actual que estás ejecutando.

Arturo
fuente
0

Puede ver todo el proceso que coloca en segundo plano (para la sesión actual) con el jobscomando Después de ejecutar este comando, verá todos los procesos que se ejecutan en el bash actual y en el lado izquierdo de cada proceso puede ver algunos números:

[1]-  Running                 sleep 200000 &
[2]+  Running                 sleep 300000 &

Simplemente puede terminar trabajos (procesos) usando kill -15 n%(n es un número que está en el signo [[])

-15es para terminar el proceso muy bien, si desea forzar el cierre del proceso, simplemente use en -9lugar de -15 PS: es obvio que si ejecuta un comando con privilegio de root, debe ejecutar kill -15 n%consudo

2) Puede ver todos los procesos que se ejecutan en el sistema con ps -auxy para ver ping:

ps -aux | grep ping 

La salida es como:

root     2615  0.0  0.0  25828  1052 pts/0    S    02:12   0:00 ping 8.8.8.8

El segundo número (2615) es PID o ID de proceso y puede finalizar el proceso con

sudo kill -15 2615
Afshin
fuente