Kadang-kadang ketika saya mencoba untuk memulai Firefox dikatakan "proses Firefox sudah berjalan". Jadi saya harus melakukan ini:
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
Yang saya suka adalah perintah yang akan melakukan semua itu untuk saya. Itu akan mengambil string input dan grep
untuk itu (atau apa pun) dalam daftar proses, dan akan membunuh semua proses dalam output:
jeremy@jeremy-desktop:~$ killbyname firefox
Saya mencoba melakukannya dalam PHP tetapi exec('ps aux')
tampaknya hanya menunjukkan proses yang telah dieksekusi exec()
dalam skrip PHP itu sendiri (jadi satu-satunya proses yang ditampilkan adalah dirinya sendiri.)
pkill -f "Process name"
perintah ...Jawaban:
Informasi lebih lanjut: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
sumber
-f
.pkill -U <username>
cukup berguna. Saya memiliki server web Solaris , daemon server web yang sebenarnya, diatur sebagai Layanan dengan pengguna itu sendiri. Jadi menetapkan oleh pengguna adalah cara sederhana / mudah untuk memicu restart.-f
bendera untuk solusi omnibus.Juga dimungkinkan untuk menggunakan:
Bagi saya, itu bekerja dengan sempurna. Itu yang saya cari. pkill tidak bekerja dengan nama tanpa bendera.
Ketika
-f
diatur, baris perintah penuh digunakan untuk pencocokan pola.sumber
-f
pilihan benar-benar diperlukan. misalnyapkill -f "EvilWindowsServer.exe"
-f
bendera juga karena membunuh proses latar belakang menjalankan skrip Python.pkill -f -9 PROCESSNAME
Anda dapat membunuh proses dengan nama dengan
killall <name>
Tetapi jika Anda tidak melihat prosesnya
ps aux
, Anda mungkin tidak akan memiliki hak untuk membunuhnya ...sumber
killall -s KILL firefox
Alternatif yang sedikit lebih lama:
sumber
Cara termudah untuk dilakukan adalah memeriksa dulu Anda mendapatkan ID proses yang benar dengan:
Jika hasilnya seperti yang diharapkan. Pergi dengan:
sumber
Aneh, tapi saya belum melihat solusinya seperti ini:
itu juga dapat membunuh banyak proses (beberapa pids) seperti:
Saya lebih suka
pidof
karena memiliki output garis tunggal:sumber
kill: invalid number 'pidof myprogram'
. Apa yang buruk di sini?Bunuh semua proses yang ada
snippet
di jalur startup. Anda dapat membunuh semua aplikasi yang dimulai dari suatu direktori dengan menempatkan / direktori / sebagai cuplikan. Ini cukup berguna ketika Anda memulai beberapa komponen untuk aplikasi yang sama dari direktori aplikasi yang sama.* Saya lebih suka pgrep jika tersedia
sumber
grep
.ps ax | awk '/[s]nippet/ { print $1 }' | xargs kill
[s]
bekerja dalam hal tidak cocok dengan proses awk itu sendiri?[x]y
cocok dengan stringxy
tetapi tidak sebaliknya. Ini adalah FAQ umum. Tautan ini ke halaman lebih dari 20 tahun yang lalu yang menjelaskan hal ini secara lebih rinci; dan ini sudah merupakan pertanyaan berulang.Di Mac saya tidak dapat menemukan pgrep dan pkill juga tidak berfungsi, jadi tuliskan satu skrip liner sederhana: -
Jika ada cara yang lebih mudah untuk melakukan ini maka silakan bagikan.
sumber
Menggunakan
#killall
perintah:sumber
Untuk membunuh dengan grep:
sumber
lebih tepatnya adalah:
sumber
export
variabel yang hanya akan Anda gunakan sekali dalam proses yang sama?Saya biasanya menggunakan
killall
perintah.Periksa tautan ini untuk perincian perintah ini.
sumber
Saya bertanya pada diri sendiri pertanyaan yang sama tetapi masalah dengan jawaban saat ini adalah bahwa mereka tidak aman memeriksa proses untuk dibunuh sehingga ... itu dapat menyebabkan kesalahan besar:) ... terutama jika beberapa proses cocok dengan pola .
Sebagai penafian, saya bukan profesional dan pasti ada ruang untuk perbaikan.
Jadi saya menulis skrip sh kecil:
sumber
Jika Anda menjalankan GNOME, Anda dapat menggunakan monitor sistem (System-> Administration-> System Monitor) untuk mematikan proses seperti yang Anda lakukan pada Windows. KDE akan memiliki sesuatu yang serupa.
sumber
kill
Perintah default menerima nama perintah sebagai alternatif untuk PID. Lihat membunuh (1) . Masalah yang sering terjadi adalahbash
menyediakan sendirikill
yang menerima nomor pekerjaan, sepertikill %1
, tetapi bukan nama perintah. Ini menghalangi perintah default. Jika fungsi sebelumnya lebih bermanfaat bagi Anda daripada yang terakhir, Anda dapat menonaktifkanbash
versi dengan memanggilenable -n kill
Untuk info lebih lanjut, lihat
kill
danenable
entri dalam bash (1) .sumber
enable -n kill
?enable kill
kill -9 $ (ps aux | grep -e myprocessname | awk '{print $ 2}')
sumber
sumber
awk oneliner, yang mem-parsing header
ps
output, jadi Anda tidak perlu peduli dengan nomor kolom (tetapi nama kolom). Mendukung regex. Misalnya, untuk mematikan semua proses, yang nama yang dapat dieksekusi (tanpa jalur) berisi kata "firefox" cobasumber