Як припинити ping <dest> &


9

Команда

ping <dest> &

змушує пінг виходити на другий план. Однак він все ще друкує вихід на термінал. Ctrl-C не зупиняє це, а лише вводить нову підказку. Як зупинити це від терміналу?


На додаток до відповідей, існує спосіб природного обмеження pingітерацій числення -c N- де N - додатне число.
l0b0

1
@ l0b0 Так, але я зіткнувся з цією конкретною проблемою, і вона насправді пов’язана з будь-якою програмою, де ми можемо не знати час виконання або де вона навіть не може бути визначена. Тож я маю на увазі запитати, як зупинити процес.
Vineet

Відповіді:


24

Спочатку введіть fgтой самий термінал, на якому працює ваша pingкоманда (він виводить процес на перший план), потім натисніть Ctrl+, cщоб зупинити процес.

введіть тут опис зображення


Це працює. Я також зрозумів, що fg працює, якщо у нас є декілька фонових процесів, викликаючи їх на перший план один за одним.
Vineet

Так, саме так воно працює, ви можете скористатися jobsдля отримання списку процесів, які працюють у фоновому режимі.
Равексіна

Як ви зробили цю петлю зображення?
phillipsk

3
@phillipsk Це GIF, ось так працює GIF ...
Ravexina

1
@Seth Oh ... у такому випадку я зняв відео за допомогою "Kazam", а потім перетворив його у gif за допомогою ffmpeg.
Ravexina

14

Якщо це ваше єдине фонове завдання, ви можете вбити його kill %1. Якщо ви не впевнені, ви можете перелічити всі фонові завдання jobsта використовувати kill %<n>там, де ви заміните n на номер вашого завдання ping.


4
Також я виявив, що n відповідає номеру, який виводиться у квадратні дужки при виконанні команди.
Vineet

7

При відправці процесу на задній план, будь то за допомогою ctrl- zабо &в кінці команди, ви отримаєте вихід в наступному форматі: [index] process-id. Якщо ви надсилаєте декілька процесів на задній план, індекс буде збільшуватися щоразу.

Наприклад:

$ 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

Щоб зупинити певний, ви можете використовувати kill <process-id>або використовувати, fg <index>а потім ctrl-c

Приклад з використанням попереднього виводу:

$ kill 41614

або

$ fg 7
sleep 106
^C

3

Запустіть нову вкладку терміналу, запустіть:

$ pgrep ping
  2564

Потім вбити під за допомогою killкоманди:

$ kill 2564

Я також використовував kill в тому ж терміналі (хоча висновок ускладнював його використання). Однак мені було цікаво, що робити, якщо мені не вдалося зайти далеко назад в термінал, щоб побачити друкований ідентифікатор процесу, тому pgrep допоміг.
Vineet

3
Коли ви використовуєте pgrepдля пошуку процесів по імені, ви також pkillможете вбивати їх по імені. Не потрібно вводити / копіювати ідентифікатор процесу та використовувати kill.
Командир байтів

Це корисно знати, але для цього питання це дещо зайве . :-p
tu-Reinstate Monica-dor duh

0

Коли ти root, це просто killall ping.


Дякуємо, що вбили мою сесію пінг, я працював на одній машині - колега
Оскар

0

Трохи інший підхід до безперервного пінгу полягає у використанні опції -c та введіть кількість часу, коли ви хочете її запустити, таким чином він зупиниться після того, як бажане число, тобто нижче пінг зупиниться після 100 пінг

ping -c 100 192.168.1.1 &


0

Просто використовуйте:

kill -9 %%

і це знищить поточний фоновий процес, який ви виконуєте.


0

Ви можете побачити весь процес, який ви ставите у фоновому режимі (для поточного сеансу) за допомогою jobsкоманди. Після запуску цієї команди ви побачите весь процес, який працює на поточному bash, а з лівого боку кожного процесу ви можете побачити деякі цифри:

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

Ви можете просто припинити завдання (процеси), використовуючи kill -15 n%(n - це число, яке знаходиться в знаку [[])

-15для процесу завершення добре, якщо ви хочете , щоб закрити процес, просто використовувати -9замість -15 PS: Це очевидно , якщо ви запускаєте команду з кореневої привілеєм, ви повинні працювати kill -15 n%зsudo

2) Ви можете побачити весь процес, який працює в системі з ps -auxі для перегляду ping:

ps -aux | grep ping 

Вихід такий:

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

Другий номер (2615) - PID або ідентифікатор процесу, і ви можете припинити процес

sudo kill -15 2615
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.