Cara mengakhiri ping <dest> &

9

Perintah

ping <dest> &

menyebabkan ping untuk pergi ke latar belakang. Masih mencetak output ke terminal, namun. Ctrl-C tidak menghentikannya, hanya memperkenalkan prompt baru. Bagaimana cara menghentikannya dari terminal?

Vineet
sumber
Selain jawaban, ada cara untuk secara alami membatasi pingiterasi dengan hitungan - -c N- di mana N adalah angka positif.
l0b0
1
@ l0b0 Ya benar, tapi saya menghadapi masalah khusus ini, dan itu sebenarnya terkait dengan program mana pun di mana kita mungkin tidak tahu waktu eksekusi, atau di mana itu bahkan mungkin tidak didefinisikan. Jadi saya bermaksud bertanya bagaimana menghentikan proses.
Vineet

Jawaban:

24

Pertama masuk fgke terminal yang sama dengan pingperintah Anda sedang berjalan (ini membawa proses ke latar depan), lalu tekan Ctrl+ cuntuk menghentikan proses.

masukkan deskripsi gambar di sini

Ravexina
sumber
Ini bekerja. Saya juga menyadari bahwa fg berfungsi jika kita memiliki banyak proses latar belakang, dengan memanggil mereka ke latar depan satu per satu.
Vineet
Yap, begitulah cara kerjanya, Anda bisa menggunakan jobsuntuk mendapatkan daftar proses yang berjalan di latar belakang.
Ravexina
Bagaimana Anda membuat lingkaran gambar itu?
phillipsk
3
@ phillipsk Ini GIF, begitulah cara kerja GIF ...
Ravexina
1
@Seth Oh ... dalam hal ini, saya merekam video menggunakan "Kazam" lalu mengonversinya menjadi gif ffmpeg.
Ravexina
14

Jika itu adalah satu-satunya pekerjaan latar belakang Anda, Anda dapat membunuhnya kill %1. Jika tidak yakin Anda bisa mendaftar semua pekerjaan latar belakang Anda jobsdan menggunakan kill %<n>tempat Anda mengganti n dengan jumlah pekerjaan ping Anda.

muclux
sumber
4
Juga, saya menemukan bahwa n cocok dengan angka yang dicetak dalam tanda kurung saat menjalankan perintah.
Vineet
7

Ketika Anda mengirim suatu proses untuk latar belakang, apakah dengan menggunakan ctrl- zatau dengan &pada akhir perintah, Anda mendapatkan output dalam format berikut: [index] process-id. Jika Anda mengirim banyak proses ke latar belakang, indeks akan terus bertambah setiap waktu.

Sebagai contoh:

$ 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

Untuk menghentikan yang spesifik, Anda dapat menggunakan kill <process-id>atau menggunakan fg <index>diikuti oleh ctrl-c

Contoh menggunakan output sebelumnya:

$ kill 41614

atau

$ fg 7
sleep 106
^C
Dan
sumber
3

Luncurkan tab terminal baru, jalankan:

$ pgrep ping
  2564

Kemudian bunuh pid menggunakan killperintah:

$ kill 2564
Liso
sumber
Saya menggunakan kill di terminal yang sama juga (meskipun output membuatnya sulit untuk digunakan). Namun, saya bertanya-tanya apa yang harus dilakukan jika saya tidak bisa pergi jauh ke belakang di terminal untuk melihat proses id dicetak, jadi pgrep telah membantu juga.
Vineet
3
Saat Anda gunakan pgrepuntuk mencari proses berdasarkan nama, Anda juga dapat menggunakannya pkilluntuk membunuhnya berdasarkan nama. Tidak perlu mengetik / menyalin id proses dan menggunakan kill.
Byte Commander
Ini berguna untuk diketahui, tetapi untuk pertanyaan ini agak berlebihan . :-p
tu-Reinstate Monica-dor duh
0

Ketika Anda root, itu sederhana killall ping.

Sim Son
sumber
Terima kasih telah membunuh sesi ping saya, saya menjalankan pada mesin yang sama - seorang rekan kerja
Oscar
0

Pendekatan yang sedikit berbeda terhadap ping kontinu adalah dengan menggunakan opsi -c dan masukkan jumlah waktu yang Anda inginkan untuk menjalankannya, dengan cara itu akan berhenti sendiri setelah hitungan yang diinginkan yaitu ping di bawah ini akan berhenti setelah 100 ping

ping -c 100 192.168.1.1 &

Ibraheem
sumber
0

Cukup gunakan:

kill -9 %%

dan itu akan mematikan proses latar belakang saat ini yang sedang Anda jalankan.

Arturo
sumber
0

Anda dapat melihat semua proses yang Anda letakkan di latar belakang (untuk sesi saat ini) dengan jobsperintah Setelah Anda menjalankan perintah ini, Anda akan melihat semua proses yang berjalan pada bash saat ini dan di sisi kiri setiap proses Anda dapat melihat beberapa angka:

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

Anda cukup mengakhiri pekerjaan (proses) dengan menggunakan kill -15 n%(n adalah angka yang ada di tanda [[])

-15adalah untuk mengakhiri proses dengan baik, jika Anda ingin menutup paksa proses, cukup gunakan -9alih-alih -15 PS: Jelas jika Anda menjalankan perintah dengan hak akses root, Anda harus menjalankan kill -15 n%dengansudo

2) Anda dapat melihat semua proses yang berjalan pada sistem dengan ps -auxdan untuk melihat ping:

ps -aux | grep ping 

Outputnya seperti:

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

Nomor kedua (2615) adalah PID atau ID proses dan Anda dapat mengakhiri proses dengan

sudo kill -15 2615
Afshin
sumber