GNU/Linux >> Belajar Linux >  >> Linux

Kuasai Proses Pembunuhan Linux Menggunakan ps, pgrep, pkill, dan Lainnya

Mengelola proses di Linux dapat tampak menakutkan bagi administrator sistem baru (sysadmin) pada awalnya. Tetapi dengan sedikit penjelasan dan demonstrasi, Anda akan belajar bagaimana menemukan dan melakukan proses mematikan Linux hanya dengan menggunakan alat baris perintah seperti ps dan kill .

Dalam artikel ini, Anda akan mempelajari perintah untuk menemukan proses yang berjalan dan salah, mematikan (mengakhiri) proses yang sedang berjalan, menemukan proses latar belakang, dan banyak lagi pada sistem operasi Linux apa pun.

Pada akhir artikel, Anda akan mengelola proses berdasarkan nomor identifikasi proses (PID) dari baris perintah seperti pro Linux. Teruslah membaca untuk mempelajari semua tentang perintah manajemen proses di Linux!

Prasyarat

Artikel ini akan menjadi panduan tentang cara mengelola proses di Linux. Jika Anda ingin langsung, Anda memerlukan yang berikut ini:

  • Host Linux, yang dapat berupa mesin virtual atau mesin fisik.
  • Untuk mencoba contoh PowerShell, instal PowerShell 7.1.1 pada host Linux.
  • Akun pengguna non-root. Meskipun akses root tidak diperlukan, akan ada contoh di mana pengguna root dapat menghentikan proses yang sedang berjalan dari pengguna lain.

Distribusi Linux, Anda pilih untuk digunakan, terserah Anda. Artikel ini akan didasarkan pada Ubuntu 20.04 LTS. Namun, perintahnya standar untuk sistem operasi Linux.

Siap untuk memulai? Bagus, mari selami.

Mengelola Proses di Linux

Kadang-kadang, Anda mungkin mengalami skenario di mana Anda harus menghentikan proses yang sedang berjalan pada sistem Linux. Sebagai contoh, Anda mungkin memiliki skrip bash yang berjalan sesuai jadwal. Skrip bash itu dikonfigurasi untuk dijalankan sebagai pengguna lain melalui cron pekerjaan (penjadwal proses Linux).

Terkadang, skrip ini memunculkan proses yang salah yang dapat membuat skrip gagal. Bagaimana Anda mematikan proses yang salah itu tanpa me-reboot sistem atau menghentikan skrip?

Di bagian selanjutnya, Anda akan menelusuri perintah yang digunakan untuk mencari dan menghentikan atau membunuh proses pada sistem Linux. Setiap bagian akan membangun yang terakhir. Anda akan belajar tentang ps , top , pgrep , kill , dan pkill perintah semua asli Linux.

Sebagai bonus, perintah setara PowerShell Get-Process dan Stop-Process disertakan jika perintah asli Linux bukan gaya Anda.

Alat untuk Menemukan Proses

Sebelum mematikan proses, Anda harus menemukan proses yang tepat untuk ditargetkan. PID unik memungkinkan penargetan yang tepat. Baca terus untuk mengetahui cara menemukan proses penghentian yang benar.

Menggunakan ps Perintah untuk Menampilkan Informasi Proses

Status Proses atau ps perintah menampilkan informasi yang berkaitan dengan proses aktif pada sistem Linux. Anda dapat menemukan proses yang sedang berjalan dan bahkan proses latar belakang dengan ps .

Perintah ps akan, secara default, menampilkan semua proses untuk identifikasi pengguna yang efektif (EUID) dari pengguna saat ini. Menjalankan ps perintah, seperti yang ditunjukkan di bawah ini, akan mengembalikan setiap proses berjalan yang dapat dihentikan pengguna Anda.

ps

Menemukan Informasi Proses yang Diperluas Menggunakan top Perintah

Bagaimana jika Anda ingin menemukan informasi yang terus diperbarui tentang proses yang berjalan dan metrik sistem, dalam hal ini, Anda dapat menggunakan top memerintah. Tidak seperti ps , top perintah memperbarui informasi proses di layar selama interval yang ditentukan.

Saat Anda menjalankan top perintah, Anda akan melihat lebih dari sekadar PID. Termasuk dengan detail proses adalah persentase CPU dan memori, Nilai bagus (prioritas proses penjadwalan CPU) , dan prioritas proses (PR) yang ditetapkan oleh kernel Linux.

Untuk sysadmin baru atau berpengalaman, top perintah seringkali merupakan alat utama untuk mengelola sumber daya dan proses sistem yang vital. Seperti yang ditunjukkan di bawah ini, top output perintah menampilkan lebih banyak informasi proses daripada ps perintah termasuk metrik sistem secara keseluruhan.

htop adalah varian yang disempurnakan dari top yang mencakup berbagai peningkatan, seperti keluaran terminal berwarna.

Katakanlah Anda ingin memeriksa memori atau sumber daya CPU yang digunakan suatu proses. Dalam hal ini, Anda dapat menggunakan p sakelar top seperti yang ditunjukkan di bawah ini.

top -p 2113

Mungkin Anda perlu menampilkan semua proses yang berjalan untuk nama pengguna tertentu. top perintah menawarkan u beralih untuk hanya menampilkan proses pengguna tertentu. Seperti yang terlihat pada contoh di bawah, PID hanya cocok dengan ID pengguna bkindle ditampilkan.

top -u bkindle

Menemukan PID Proses Tertentu dengan pgrep Perintah

Awalnya perintah Solaris, pgrep porting untuk digunakan dengan Linux. Menggabungkan kekuatan pencarian grep perintah dan manajemen proses ps , pgrep menawarkan fleksibilitas dalam menemukan proses yang tepat untuk ditargetkan.

Meskipun ps menampilkan informasi lebih lanjut, pgrep dirancang untuk mengembalikan hanya PID dari proses yang dikembalikan. pgrep membantu menemukan proses menggunakan banyak parameter pencarian yang tersedia . Pada contoh berikut, pgrep ditampilkan mencari proses apa pun yang cocok dengan vmtoolsd .

pgrep vmtoolsd

Demikian pula, tentukan ID pengguna dengan u beralih untuk mengambil hanya proses yang terkait dengan pengguna tertentu. Seperti yang ditunjukkan di bawah ini, hanya satu PID yang dikembalikan untuk pengguna bkindle dan vmtoolsd proses.

pgrep -u bkindle vmtoolsd

Menemukan Proses dengan Get-Process PowerShell di Linux

Perintah khas Linux berfungsi dengan baik, tetapi tahukah Anda bahwa PowerShell juga dapat mengelola proses Linux? Get-Process cmdlet bekerja mirip dengan ps Linux perintah dan mengembalikan informasi proses. Misalnya, mungkin Anda perlu menemukan semua proses yang berjalan oleh pengguna saat ini, bkindle . Seperti yang ditunjukkan di bawah ini, temukan semua PID (ID berlabel dengan Get-Process ) dari pengguna bkindle .

Get-Process -IncludeUserName |
	Where-Object {$_.UserName -eq 'bkindle'} |
	Select-Object -Property 'Id','UserName','ProcessName'

Terkait:Cara Menggunakan PowerShell Where-Object untuk Memfilter Semua Hal

Setelah mempelajari cara menemukan proses yang berbeda, baca terus untuk mengetahui semua cara untuk menghentikan atau mematikan proses di Linux!

Membunuh Proses Menggunakan Perintah Kill di Linux

Di bagian sebelumnya, Anda telah mempelajari cara menemukan PID dari proses yang ingin Anda kirimi sinyal mematikan untuk menggunakan perintah Linux dan PowerShell asli. Bagian selanjutnya akan menjelaskan cara menggunakan kill dan pkill program, sinyal terkait, dan sakelar baris perintah.

Sinyal Linux dan Manajemen Proses

Sinyal adalah metode yang digunakan Linux untuk berkomunikasi dengan proses yang berjalan di sistem operasi. Tiga sinyal utama bahwa kill perintah yang digunakan untuk menghentikan proses adalah:

  • 1 (SIGHUP) – Mengakhiri program interaktif dan menyebabkan daemon (layanan latar belakang) membaca ulang file konfigurasi yang digunakan proses.
  • 9 (SIGKILL) – Memaksa proses untuk keluar tanpa melakukan tugas shutdown yang lancar.
  • 15 (SIGTERM) – Mengizinkan sebuah proses untuk berhenti dengan baik, seperti menutup file yang terbuka saat selesai. Ini adalah sinyal default yang digunakan saat tidak ada nomor yang ditentukan saat menggunakan perintah kill.

Sementara artikel ini hanya berfokus pada tiga sinyal utama yang digunakan untuk mematikan proses, ada total 64 sinyal yang tersedia. Gunakan kill -l untuk mendapatkan daftar sinyal dan nomor yang sesuai.

Sekarang setelah Anda memahami tiga sinyal utama yang digunakan dalam menghentikan suatu proses, pelajari cara mematikan suatu proses di bagian selanjutnya.

Menggunakan kill Perintah untuk Mengakhiri Proses

Dalam contoh berikut ini, Anda akan menggunakan kill memerintah. Berpura-pura sejenak bahwa Anda menjalankan instance PowerShell, bernama pwsh , dan PID yang ditetapkan adalah 22687. Salah satu cara untuk menghentikan proses ini ditunjukkan di bawah ini.

  1. Gunakan pgrep pwsh untuk menentukan PID untuk proses pwsh , digunakan dalam kill perintah.
  2. Gunakan kill -s TERM 22687 untuk mengakhiri pwsh proses dengan anggun. TERM perintah memetakan ke sinyal 15 (SIGTERM) dan ditunjukkan menggunakan s parameter kill perintah.
  3. Gunakan top choice pilihan Anda , ps , atau pgrep untuk memverifikasi bahwa PID tidak lagi terdaftar.

Di bawah ini adalah contoh proses di atas dari terminal bash Ubuntu 20.04 LTS.

killall perintah akan menghentikan semua proses berdasarkan nama alih-alih PID, yang dapat membuat perintah ini sangat merusak jika digunakan secara sembarangan. Namun, jika Anda memilih untuk menggunakan perintah ini, gunakan i opsi untuk menyebabkan perintah meminta konfirmasi.

Membunuh Proses berdasarkan Nama dengan pkill

Anda mungkin telah memperhatikan bahwa kill perintah hanya berfungsi dengan ID proses. Ini dapat membuat penghentian proses menjadi proses multi-langkah yang rumit. pkill perintah, termasuk dalam procps dan procps-ng paket, menghentikan proses berdasarkan nama yang dicari.

Secara fungsional, pkill perintah bertindak sebagai pembungkus di sekitar pgrep program. pkill perintah mengirimkan sinyal tertentu ke setiap proses yang ditemukan alih-alih hanya mencantumkan PID di terminal. pkill berbeda dari kill dalam pkill itu hanya dapat menggunakan nama proses, bukan PID.

pkill perintah tidak tersedia, secara default, di Ubuntu 20.04 LTS. Anda harus mengunduh dan menginstal aplikasi. Untuk melakukannya, jalankan sudo apt install mcollective-plugins-process -y .

Untuk mematikan proses menggunakan pkill , lakukan langkah-langkah berikut:

  1. Gunakan ps untuk memverifikasi aplikasi nano (editor teks baris perintah) sedang berjalan. Langkah ini opsional, tetapi pemeriksaan keamanan sebelum menghentikan proses.
  2. Gunakan pkill -9 nano untuk menghentikan aplikasi nano secara paksa.

Di bawah ini adalah contoh proses di atas dari terminal bash Ubuntu 20.04 LTS.

Membunuh Proses dengan Top Perintah

Saat Anda menjalankan top perintah untuk melihat proses yang sedang berjalan, Anda dapat mematikan proses tertentu dengan k penekanan tombol. Anda akan melihat permintaan interaktif yang meminta PID dari suatu proses untuk dimatikan.

Seperti yang ditunjukkan di bawah ini, jalankan top perintah dan tekan k. Masukkan PID yang ingin Anda bunuh, dan tekan tombol Enter untuk segera menghentikan PID.

Selanjutnya, pelajari satu lagi alternatif untuk perintah Linux asli menggunakan PowerShell Stop-Process perintah!

Menggunakan Stop-Process PowerShell Perintah untuk Mengakhiri Proses

Jika perintah asli Linux bukan gaya Anda, PowerShell telah membantu Anda! Seperti halnya dengan kill perintah, Anda dapat menghentikan proses menggunakan Stop-Process cmdlet di Linux. Sekali lagi, berpura-pura Anda menjalankan PowerShell pwsh proses.

  1. Temukan PID dengan Get-Process -ProcessName 'pwsh' dan catat PID untuk dihentikan.
  2. Gunakan Stop-Process -Id 29992,30014 untuk menghentikan beberapa proses yang dikembalikan.
  3. Gunakan Get-Process -ProcessName 'pwsh' dan verifikasi PID, 29992 dan 30014 tidak lagi terdaftar, artinya telah dihentikan.

Anda juga dapat menggunakan Get-Process dan kill metode untuk menghentikan satu atau beberapa proses:(Get-Process -Id [PID]).Kill() atau (Get-Process -Id [PID1,2,3,4]).Kill() .

Berhati-hatilah saat menggunakan ProcessName parameter. Menggunakan parameter ini berperilaku mirip dengan killall perintah, dan akan membunuh semua proses cocok dengan nama yang diberikan.

Di bawah ini adalah contoh proses di atas dari terminal bash Ubuntu 20.04 LTS.

Langkah Selanjutnya

Anda sekarang harus mengetahui banyak cara untuk menemukan dan menghentikan proses di Linux! Untuk tantangan Anda berikutnya, coba hentikan proses dari jarak jauh menggunakan koneksi SSH atau dengan mematikan proses yang mungkin berjalan dalam container.

Terkait:Seorang Pria Windows di Dunia Linux:Menyiapkan SSH di Linux


Linux
  1. Cara Menemukan dan Membunuh Proses Zombie di Linux

  2. skrip linux untuk membunuh proses java

  3. Cara mematikan semua proses yang dikembalikan oleh pgrep

  1. Perbedaan Kill, Pkill, dan Killall?

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. Linux:Temukan dan Bunuh Proses Zombie

  1. Mengelola proses di Linux dengan kill dan killall

  2. Bagaimana Cara Membunuh Proses di Linux? Perintah untuk Mengakhiri

  3. Linux:Lihat dan matikan proses yang tidak diakui