Bagaimana saya bisa membunuh pekerjaan yang dimulai pada shell lain (jendela atau tab terminal)?

9

Jika saya memulai proses dan latar belakangnya di jendela terminal (katakanlah ping google.com &), saya bisa membunuhnya menggunakan kill %1(dengan asumsi itu adalah pekerjaan 1).

Namun jika saya membuka jendela terminal lain (atau tab) proses berlatar belakang tidak tercantum di bawah jobsdan tidak dapat dibunuh secara langsung menggunakan kill.

Apakah mungkin untuk mematikan proses ini dari jendela atau tab terminal lain?

Catatan: Saya menggunakan Xfce Terminal Emulator 0.4.3 dan bash (walaupun jika ada solusi di shell umum lain tetapi tidak bash saya juga terbuka untuk itu)

DQdlM
sumber

Jawaban:

10

Ya, yang perlu Anda ketahui adalah id proses (PID) dari proses tersebut. Anda dapat menemukan ini dengan psperintah, atau pidofperintah.

kill $(pidof ping)

Harus bekerja dari shell lain. Jika tidak, Anda dapat menggunakan ps dan grep untuk melakukan ping.

Keith
sumber
6

Jika Anda mengetik topdi jendela terminal lain, itu akan mencantumkan semua proses yang berjalan. Catat id proses Anda di jobsana, Lalu tekan quntuk meninggalkan layar itu. Maka killprosesnya seperti biasa.

arthankamal
sumber
terima kasih atas jawaban Anda tetapi toptampaknya tidak menunjukkan semua proses spesifik yang berjalan di shell (mis., tidak muncul ping). Itu memberi saya PID untuk terminal emulator tapi itu membunuh terminal emulator seperti yang Anda harapkan.
DQdlM
1
jika Anda mengetik top -U yourusernameterminal, itu hanya akan mencantumkan proses yang Anda gunakan.
arthankamal
luar biasa! +1 hanya untuk itu! terima kasih
DQdlM
saat di atas, tekan k lalu 15 untuk soft-kill (coba dulu), 9 untuk hard-kill.
Michael Durrant
4

Saya biasanya melakukan sesuatu seperti ini:

ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'

Misalnya, jika $ PROCESS = "bash", maka ini adalah output dari sesi saya saat ini:

2683 bash
4481 bash
5695 bash

Maka saya akan kill $PIDuntuk yang mana /bin/bashsaya tidak lagi ingin berjalan.

ps, grepdan (opsional) awkberguna untuk memburu PID kill.

Charles Boyd
sumber