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.
- Gunakan
pgrep pwsh
untuk menentukan PID untuk prosespwsh
, digunakan dalamkill
perintah. - Gunakan
kill -s TERM 22687
untuk mengakhiripwsh
proses dengan anggun.TERM
perintah memetakan ke sinyal 15 (SIGTERM) dan ditunjukkan menggunakans
parameterkill
perintah. - Gunakan
top
choice pilihan Anda ,ps
, ataupgrep
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, gunakani
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, jalankansudo apt install mcollective-plugins-process -y
.
Untuk mematikan proses menggunakan pkill
, lakukan langkah-langkah berikut:
- Gunakan
ps
untuk memverifikasi aplikasi nano (editor teks baris perintah) sedang berjalan. Langkah ini opsional, tetapi pemeriksaan keamanan sebelum menghentikan proses. - 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.
- Temukan PID dengan
Get-Process -ProcessName 'pwsh'
dan catat PID untuk dihentikan. - Gunakan
Stop-Process -Id 29992,30014
untuk menghentikan beberapa proses yang dikembalikan. - Gunakan
Get-Process -ProcessName 'pwsh'
dan verifikasi PID,29992
dan30014
tidak lagi terdaftar, artinya telah dihentikan.
Anda juga dapat menggunakan
Get-Process
dankill
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 dengankillall
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