Ada banyak cara untuk melakukannya.
Metode # 1 - ps
Anda dapat menggunakan ps
perintah untuk menemukan ID proses untuk proses ini dan kemudian menggunakan PID untuk mematikan proses.
Contoh
$ ps -eaf | grep [w]get
saml 1713 1709 0 Dec10 pts/0 00:00:00 wget ...
$ kill 1713
Metode # 2 - pgrep
Anda juga dapat menemukan ID proses menggunakan pgrep
.
Contoh
$ pgrep wget
1234
$ kill 1234
Metode # 3 - pkill
Jika Anda yakin itu satu-satunya yang wget
Anda jalankan, Anda dapat menggunakan perintah pkill
untuk mematikan pekerjaan dengan nama.
Contoh
$ pkill wget
Metode # 4 - pekerjaan
Jika Anda berada di shell yang sama dari tempat Anda menjalankan pekerjaan yang sekarang berlatar belakang. Anda dapat memeriksa apakah masih berjalan menggunakan jobs
perintah, dan juga membunuhnya dengan nomor tugasnya.
Contoh
Pekerjaan palsu saya sleep
,.
$ sleep 100 &
[1] 4542
Temukan nomor pekerjaannya. CATATAN: nomor 4542 adalah ID proses.
$ jobs
[1]+ Running sleep 100 &
$ kill %1
[1]+ Terminated sleep 100
Metode # 5 - fg
Anda dapat membawa pekerjaan latar belakang kembali ke latar depan menggunakan fg
perintah.
Contoh
Pekerjaan palsu sleep
,.
$ sleep 100 &
[1] 4650
Dapatkan nomor pekerjaan.
$ jobs
[1]+ Running sleep 100 &
Bawa pekerjaan # 1 kembali ke latar depan, dan kemudian gunakan Ctrl+ C.
$ fg 1
sleep 100
^C
$
jobs
tidak memilikioutput
danfg
sais:-bash: fg: 1: no such job
. Tetapi mengetikfg
berfungsi dengan baik dan jugapkill wget
bekerja dengan baik. tapips -eaf|grep wget
kemudiankill <process number>
dosis tidak menghentikan pekerjaan. ps: Saya menggunakan angka ketiga sebagai nomor proses .ps
. 3 # adalah id proses orang tua.ps -eaef| grep [w]get
.pgrep
gantinya,pgrep wget
.ps -eaf | grep [w]get
. Opsi ada dips
halaman manual.man ps
.Dalam bash, Anda dapat menggunakan
fg
untuk mendapatkan pekerjaan ke latar depan dan kemudian menggunakan Ctrl+CAtau daftar proses di latar belakang dengan
jobs
dan kemudian lakukan(dengan 1 diganti dengan angka
jobs
memberi Anda)sumber
Anda juga dapat menggunakan
kill $!
untuk membunuh pekerjaan yang baru saja dilatar belakangi.sumber
EDIT: Setelah di latar depan, Anda dapat Ctrl+ C, atau seperti @Zelda menyebutkan, membunuh dengan '% x' di mana 'x' adalah nomor pekerjaan akan mengirim sinyal default (kemungkinan besar SIGTERM dalam kasus Linux).
cukup ketik
fg
untuk membawanya ke latar depan, jika itu adalah proses terakhir yang Anda latar belakang (dengan '&').Jika itu bukan yang terakhir, ketik:
jobs
dan temukan 'nomor pekerjaan', diwakili dalam '[]'. Kemudian ketikkan:..di mana '2' adalah nomor pekerjaan, misalnya:
sumber
Cara yang benar adalah mengetik
jobs
lalu menggunakan nomor pekerjaan untuk membunuhnya. Untuk menggunakan pid untuk membunuhnya, Anda harus membawanya ke latar depan seperti disebutkan dalam jawaban pertama.Coba ini
Jika Anda menjalankan pekerjaan tepat setelah Anda membunuhnya, Anda akan melihat ini
sumber
Satu hal yang saya tidak lihat di sini, yang saya temukan sangat berguna terutama ketika menguji perintah, adalah
pidof
. Anda dapat menggunakanpidof [command]
untuk menemukan id proses dari proses yang sedang berjalan. Saya suka karena ini memungkinkan saya untuk dengan cepat menemukan id dari perintah yang saya inginkan, yang biasanya merupakan sesuatu yang saya panggil.Setelah Anda memiliki pid, Anda bisa mematikan prosesnya. Ini memungkinkan untuk membuat skrip sederhana untuk mematikan proses hanya jika sedang berjalan.
sumber
Contoh umum adalah
stress
alat. Katakanlah Anda menjalankan yang berikut ini:dan tutup jendela terminal. Prosesnya akan terus memakan sumber daya Anda dari latar belakang.
Miliknya apa yang saya lakukan:
pgrep
daftar PID dari proses yang dikenakan dan menyimpannya ke dalam variabelx
yang kemudian digunakan olehkill -9
untuk menghentikannya.sumber
dalam proses bash last stops (Ctrl-Z) Anda akan membunuh dengan:
atau jika ingin memilih, gunakan:
jobs
kemudian:
kill %N
Suka
kill %2
sumber