Bagaimana cara mematikan proses di Ubuntu?

Bagaimana cara mematikan semua proses yang berjalan oleh akun non-root saya sendiri?

Saya memiliki beberapa proses SMBD berputar yang saya sebabkan dari mesin windows saya dan jadi saya telnetted ke server linux dan saya ingin membunuh proses pemintalan itu. Saya tidak memiliki wewenang untuk me-restart layanan atau me-reboot mesin.

Untuk membunuh semua proses yang Anda memiliki izin untuk membunuh, cukup jalankan perintah

kill -15 -1 atau kill -9 -1 tergantung pada perilaku yang diinginkan (penggunaan man kill untuk rincian)

Untuk mematikan proses tertentu, katakanlah, firefox, cukup jalankan

pkill firefox atau killall firefox tergantung pada perilaku yang Anda inginkan: Apa & # 39;s perbedaan antara'killall ' dan'pkill & # 39;?

Jika Anda ingin melihat proses apa yang sedang berjalan, gunakan perintah

ps -ef

Jika Anda ingin mencari semua proses oleh pengguna bob, ini mungkin membantu

pgrep -l -u bob

atau

ps -ef | grep bob

Gunakan sudo kill <pid> atau sudo killall <process-name>

Anda dapat menggunakan

ps -ax | grep application name 

Jika Anda mencari jenis firefox di terminal seperti ps -ax | grep firefox, ini menunjukkan ID proses aplikasi yang sesuai. Anda dapat menghentikan aplikasi itu dengan kill perintah jika ID proses = 1317,

kill -9 1317

Mari kita coba sesuatu yang lebih:

sudo apt-get install htop 

The top command adalah cara tradisional untuk melihat penggunaan sumber daya sistem Anda dan melihat proses yang mengambil sumber daya sistem yang paling. Top menampilkan daftar proses, dengan yang menggunakan CPU paling banyak di bagian atas.

htop menampilkan informasi yang sama dengan tata letak yang lebih mudah dipahami. Hal ini juga memungkinkan Anda memilih proses dengan tombol panah dan melakukan tindakan, seperti membunuh mereka atau mengubah prioritas mereka, dengan F kunci.

Saya akan menggunakan xkill. Masuk xkill di terminal dan klik di jendela, atau masukkan xkill dan ID proses dan itu akan dihentikan.

Mengetahui lebih lanjut tentang xkill on x.org.

Untuk mencoba untuk membunuh semua proses yang dimiliki oleh pengguna username, lari:

pkill -U username

Saya akan memecah masalah Anda menjadi 2 bagian:

1) Bagaimana cara menemukan proses yang dimulai oleh saya? Jalankan ini:

ps -u `whoami`

The whoami hanya dalam kasus Anda tidak tahu nama akun yang Anda gunakan, jika tidak cukup ketik nama akun tanpa tanda kutip kembali.

Ini akan mencantumkan semua proses yang dapat dihapus oleh akun Anda.

2) yang ps perintah akan mencantumkan nomor proses, TTY, waktu, dan CMD. ID proses adalah kolom pertama. Gunakan nomor itu untuk membunuh proses. Hati-hati saat membunuh proses. Anda mungkin merusak sesuatu jika Anda membunuh yang salah process.To membunuh proses Anda akan menggunakan kill perintah, yang mengirimkan sinyal ke proses. Sinyal menunjukkan apa proses harus lakukan. Misalnya, mengirim -1 untuk proses akan meminta untuk reload file konfigurasi; mengirim -2 sama dengan menekan Control + C pada proses itu; -9 akan menyebabkan kernel meninggalkan proses, tanpa mengkomunikasikannya ke proses.

Misalkan ps-u whoami kembali sesuatu seperti

  PID TTY          TIME CMD 4333 pts/1    00:00:00 fish 4335 ?        00:00:00 fishd 4816 ?        00:00:00 intellij 4868 ?        00:50:42 java 4939 ?        00:00:19 fsnotifier64 7667 ?        02:49:08 firefox 7698 ?        00:00:00 unity-webapps-s

Dan Anda ingin membunuh firefox proses dengan ID prosesnya, maka Anda akan melakukannya:

kill -1 7667

Kemudian Anda akan kembali menjalankan sama ps perintah dan periksa apakah prosesnya masih berjalan. Jika masih berjalan, maka lakukan a

kill -2 7667

bekerja dengan cara Anda hingga -9.

Untuk mematikan semua proses yang dimulai oleh akun Anda, masukkan kill <level> -1. Sama seperti sebelumnya: cara kerja Anda hingga -9.

Jika Anda tahu nama proses Anda hanya dapat pergi killall <processname>, di mana adalah apa yang Anda mencoba untuk membunuh. Misalnya: killall fish (ikan, dalam pengertian ini, adalah cangkang interaktif yang ramah).

Dokumentasi untuk killall dapat ditemukan di sini: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html

Dengan aplikasi ini Anda dapat melihat daftar program

instal htop

sudo apt-get install htop

untuk melihat proses dan membunuh proses Anda dapat menginstalnya dan hanya menghapus

enter image description here

Saya menulis skrip kecil yang saya tulis untuk membunuh (dalam kasus saya) Skype:

kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`

Tapi saya menemukan bahwa sebanyak yang bekerja kemudian, itu tidak bekerja pada hari berikutnya karena pid adalah panjang yang berbeda dan ada untuk jumlah ruang yang berbeda

Kemudian saya datang di situs ini dan mencoba

pgrep -l -u justin

yang dengan mudah menghasilkan proses dalam format

[pid] [name]

Jadi saya disesuaikan kode saya dalam script untuk ini:

kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`

Apa yang dilakukan adalah Pipa semua proses justin sedang berjalan (yang dapat diubah ke nama pengguna apa pun) ke grep yang mencari skype (ini dapat diubah ke proses Anda) dan kemudian menyalurkan saluran itu ke cut yang kemudian hanya membaca PID dan akhirnya menggunakan PID itu di kill perintah untuk membunuhnya.

...Semua proses di Linux merespons sinyal. Sinyal adalah cara tingkat os untuk memberi tahu program untuk menghentikan atau memodifikasi perilaku mereka.

Cara mengirim sinyal proses dengan PID

Cara paling umum untuk meneruskan sinyal ke suatu program adalah dengan perintah kill.

Seperti yang Anda duga, fungsi default utilitas ini adalah untuk mencoba untuk membunuh proses:

kill PID_of_target_process

Ini mengirimkan sinyal istilah untuk proses. Istilah sinyal memberitahu proses untuk mengakhiri. Ini memungkinkan program untuk melakukan operasi pembersihan dan keluar dengan lancar.

Jika program ini nakal dan tidak keluar ketika diberi sinyal jangka, kita dapat meningkat sinyal dengan melewati sinyal membunuh:

kill -KILL PID_of_target_process

Ini adalah sinyal khusus yang tidak dikirim ke program.

Sebaliknya, itu diberikan ke kernel sistem operasi, yang menutup proses. Ini digunakan untuk mem-bypass program yang mengabaikan sinyal yang dikirim kepada mereka...