Yang perlu Anda ketahui tentang proses di Linux [panduan komprehensif]
- 3497
- 674
- Daryl Hermiston DVM
Dalam artikel ini, kami akan berjalan melalui pemahaman dasar tentang proses dan secara singkat melihat cara mengelola proses di Linux menggunakan perintah tertentu.
A proses mengacu pada program dalam eksekusi; Ini adalah contoh yang berjalan dari suatu program. Ini terdiri dari instruksi program, data yang dibaca dari file, program lain atau input dari pengguna sistem.
Jenis proses
Ada dua jenis proses secara fundamental di Linux:
- Proses latar depan (juga disebut sebagai proses interaktif) - ini diinisialisasi dan dikendalikan melalui sesi terminal. Dengan kata lain, harus ada pengguna yang terhubung ke sistem untuk memulai proses tersebut; Mereka belum memulai secara otomatis sebagai bagian dari fungsi/layanan sistem.
- Proses latar belakang (juga disebut sebagai proses non -interaktif/otomatis) - adalah proses yang tidak terhubung ke terminal; Mereka tidak mengharapkan masukan pengguna.
Apa itu Daemon
Ini adalah jenis khusus proses latar belakang yang dimulai pada startup sistem dan terus berjalan selamanya sebagai layanan; Mereka tidak mati. Mereka dimulai sebagai tugas sistem (dijalankan sebagai layanan), secara spontan. Namun, mereka dapat dikendalikan oleh pengguna melalui proses init.
Status proses LinuxPembuatan suatu proses di Linux
Proses baru biasanya dibuat ketika proses yang ada membuat salinan yang tepat dari dirinya sendiri dalam memori. Proses anak akan memiliki lingkungan yang sama dengan induknya, tetapi hanya nomor ID proses yang berbeda.
Ada dua cara konvensional yang digunakan untuk membuat proses baru di Linux:
- Menggunakan fungsi sistem () - Metode ini relatif sederhana, namun, tidak efisien dan memiliki risiko keamanan tertentu secara signifikan.
- Menggunakan fungsi fork () dan exec () - Teknik ini sedikit canggih tetapi menawarkan fleksibilitas yang lebih besar, kecepatan, bersama dengan keamanan.
Bagaimana Linux Mengidentifikasi Proses?
Karena Linux adalah sistem multi-pengguna, yang berarti pengguna yang berbeda dapat menjalankan berbagai program pada sistem, setiap instance yang berjalan dari suatu program harus diidentifikasi secara unik oleh kernel.
Dan sebuah program diidentifikasi oleh ID prosesnya (Pid) serta ID Proses Induknya (PPID), oleh karena itu proses selanjutnya dapat dikategorikan ke dalam:
- Proses induk - Ini adalah proses yang membuat proses lain selama run-time.
- Proses anak - Proses ini dibuat oleh proses lain selama run-time.
Proses init
Init Proses adalah ibu (orang tua) dari semua proses pada sistem, ini adalah program pertama yang dieksekusi ketika sistem Linux memicu; itu mengelola semua proses lain di sistem. Itu dimulai oleh kernel itu sendiri, jadi pada prinsipnya tidak memiliki proses induk.
Proses init selalu memiliki ID proses 1. Ini berfungsi sebagai orang tua angkat untuk semua proses yatim piatu.
Anda dapat menggunakan PIDOF Command untuk menemukan ID suatu proses:
# PIDOF SYSTEMD # PIDOF TOP # PIDOF HTTPDTemukan ID Proses Linux
Untuk menemukan ID proses dan ID proses induk dari shell saat ini, jalankan:
$ echo $$ $ echo $ ppidTemukan ID Proses Induk Linux
Memulai proses di Linux
Setelah Anda menjalankan perintah atau program (misalnya CloudCMD - CloudCommander), itu akan memulai proses dalam sistem. Anda dapat memulai proses latar depan (interaktif) sebagai berikut, itu akan terhubung ke terminal dan pengguna dapat mengirim masukan:
# cloudcmdMulai proses interaktif Linux
Pekerjaan latar belakang Linux
Untuk memulai proses di latar belakang (non-interaktif), gunakan &
Simbol, di sini, prosesnya tidak membaca input dari pengguna sampai dipindahkan ke latar depan.
# CloudCMD & # JobsMulai proses Linux di latar belakang
Anda juga dapat mengirim proses ke latar belakang dengan menangguhkannya menggunakan [Ctrl + Z]
, Ini akan mengirim Sigstop sinyal ke proses, sehingga menghentikan operasinya; itu menjadi idle:
# TAR -CF Cadangan.tar /cadangan /* #press ctrl+z # Jobs
Untuk terus menjalankan perintah di atas ditangguhkan di latar belakang, gunakan bg memerintah:
# BG
Untuk mengirim proses latar belakang ke latar depan, gunakan FG Perintah bersama dengan ID pekerjaan seperti itu:
# Jobs # fg %1Pekerjaan proses latar belakang linux
Anda mungkin juga suka: Cara Memulai Perintah Linux di Latar Belakang dan Lepaskan proses di Terminal
Keadaan proses di Linux
Selama pelaksanaan, suatu proses berubah dari satu negara ke negara lain tergantung pada lingkungan/keadaannya. Di Linux, suatu proses memiliki keadaan berikut:
- Berlari - Di sini berjalan (ini adalah proses saat ini dalam sistem) atau siap berjalan (menunggu untuk ditugaskan ke salah satu CPU).
- Menunggu - Dalam keadaan ini, suatu proses menunggu suatu peristiwa terjadi atau untuk sumber daya sistem. Selain itu, kernel juga membedakan antara dua jenis proses menunggu; Proses tunggu yang terputus - dapat terganggu oleh sinyal dan proses menunggu yang tidak terputus - menunggu langsung pada kondisi perangkat keras dan tidak dapat terganggu oleh peristiwa/sinyal apa pun.
- Berhenti - Dalam keadaan ini, suatu proses telah dihentikan, biasanya dengan menerima sinyal. Misalnya, proses yang sedang debug.
- Zombie - Di sini, suatu proses sudah mati, telah dihentikan tetapi masih memiliki entri di tabel proses.
Cara melihat proses aktif di linux
Ada beberapa alat Linux untuk melihat/mencantumkan proses menjalankan pada sistem, dua tradisional dan terkenal adalah perintah PS dan teratas:
1. Perintah ps
Ini menampilkan informasi tentang pemilihan proses aktif pada sistem seperti yang ditunjukkan di bawah ini:
# ps # ps -e | kepalaDaftar proses aktif Linux
2. Alat Pemantauan Top - Sistem
Top adalah alat yang ampuh yang menawarkan Anda tampilan real-time yang dinamis dari sistem yang berjalan seperti yang ditunjukkan pada tangkapan layar di bawah ini:
# atasDaftar proses berjalan Linux
Baca ini untuk lebih banyak contoh penggunaan teratas: 12 contoh perintah teratas di Linux
3. PLINT - Alat Pemantauan Sistem
pandang adalah alat pemantauan sistem yang relatif baru dengan fitur canggih:
# melirikPLINT - Pemantauan Proses Linux
Untuk Panduan Penggunaan Komprehensif, Baca: Lirik - Alat Pemantauan Sistem Waktu Nyata Tingkat Lanjut untuk Linux
Ada beberapa alat pemantauan sistem Linux lain yang dapat Anda gunakan untuk mendaftar proses aktif, buka tautan di bawah ini untuk membaca lebih lanjut tentang mereka:
- 20 Alat baris perintah untuk memantau kinerja Linux
- 13 Alat pemantauan Linux yang lebih berguna
Cara mengontrol proses di linux
Linux juga memiliki beberapa perintah untuk mengontrol proses seperti Kill, Pkill, Pgrep dan Killall, di bawah ini adalah beberapa contoh dasar tentang cara menggunakannya:
$ pgrep -u tecmint top $ kill 2308 $ pgrep -u tecmint top $ pgrep -u tecmint glances $ pkill glances $ pgrep -u tecmint melirikKontrol proses Linux
Untuk mempelajari cara menggunakan perintah ini secara mendalam, untuk membunuh/menghentikan proses aktif di Linux, buka tautan di bawah ini:
- Panduan untuk Membunuh, Pkill dan Killall Perintah untuk Menghentikan Proses Linux
- Cara Menemukan dan Membunuh Proses Berlari di Linux
Perhatikan bahwa Anda dapat menggunakannya untuk membunuh aplikasi yang tidak responsif di Linux saat sistem Anda membeku.
Mengirim sinyal ke proses
Cara mendasar untuk mengendalikan proses di Linux adalah dengan mengirimkan sinyal kepada mereka. Ada beberapa sinyal yang dapat Anda kirim ke suatu proses, untuk melihat semua sinyal berjalan:
$ kill -lSebutkan semua sinyal linux
Untuk mengirim sinyal ke suatu proses, gunakan perintah kill, pkill atau pGrep yang kami sebutkan sebelumnya. Tetapi program hanya dapat menanggapi sinyal jika diprogram untuk mengenali sinyal -sinyal tersebut.
Dan sebagian besar sinyal untuk penggunaan internal oleh sistem, atau untuk pemrogram saat mereka menulis kode. Berikut ini adalah sinyal yang berguna bagi pengguna sistem:
- Sighup 1 - dikirim ke suatu proses saat terminal pengendali ditutup.
- Sigint 2 - Dikirim ke suatu proses dengan terminal pengendali saat pengguna mengganggu proses dengan menekan
[Ctrl+C]
. - Sigquit 3 - Dikirim ke suatu proses jika pengguna mengirimkan sinyal berhenti
[Ctrl+D]
. - Sigkill 9 - Sinyal ini segera berakhir (membunuh) suatu proses dan prosesnya tidak akan melakukan operasi pembersihan apa pun.
- Sigterm 15 - Sinyal terminasi program ini (Kill akan mengirimkan ini secara default).
- SIGTSTP 20 - dikirim ke proses dengan terminal pengendali untuk memintanya untuk berhenti (terminal stop); diprakarsai oleh pengguna yang menekan
[Ctrl+Z]
.
Berikut ini adalah Contoh Perintah Kill untuk membunuh aplikasi Firefox menggunakan PID -nya setelah membeku:
$ pidof firefox $ kill 9 2687 atau $ kill -kill 2687 atau $ kill -sigkill 2687
Untuk membunuh aplikasi menggunakan namanya, gunakan pkill atau killall seperti itu:
$ pkill firefox $ killall firefox
Mengubah Prioritas Proses Linux
Pada sistem Linux, semua proses aktif memiliki prioritas dan nilai bagus tertentu. Proses dengan prioritas yang lebih tinggi biasanya akan mendapatkan lebih banyak waktu CPU daripada proses prioritas yang lebih rendah.
Namun, pengguna sistem dengan hak istimewa root dapat mempengaruhi ini dengan Bagus Dan Renice perintah.
Dari output dari perintah atas, Ni menunjukkan nilai proses yang bagus:
$ topDaftar proses berjalan Linux
Menggunakan Bagus Perintah untuk menetapkan nilai yang bagus untuk suatu proses. Perlu diingat bahwa pengguna normal dapat menghubungkan nilai yang bagus dari nol hingga 20 dengan proses yang mereka miliki.
Hanya pengguna root yang dapat menggunakan nilai bagus negatif.
Ke Renice prioritas suatu proses, gunakan Renice Perintah sebagai berikut:
$ Renice +8 2687 $ Renice +8 2103
Lihatlah beberapa artikel berguna kami tentang cara mengelola dan mengontrol proses Linux.
- Manajemen Proses Linux: boot, shutdown, dan semuanya di antaranya
- Temukan 15 proses teratas berdasarkan penggunaan memori dengan 'atas' dalam mode batch
- Temukan Proses Running Top dengan memori tertinggi dan penggunaan CPU di Linux
- Cara menemukan nama proses menggunakan nomor pid di linux
Itu saja untuk saat ini! Apakah Anda memiliki pertanyaan atau ide tambahan, bagikan dengan kami melalui formulir umpan balik di bawah ini.
- « Cara melakukan operasi sandal dan keseimbangan kembali dalam sistem file gluster-Bagian 2
- Cara mengaktifkan berbagi desktop di ubuntu dan linux mint »