Cara Cari Daftar Proses Daemon dan Proses Zombie di Linux

A+ A-

Artikel ini akan memandu Anda untuk memahami proses Zombie dan Daemon, dan juga membantu kita untuk menemukan proses yang berjalan di latar belakang.

Apa Zombie Proses?

Ketika proses berakhir eksekusi, maka akan memiliki status keluar untuk melaporkan ke proses tuannya. Karena itu sedikit informasi, proses akan tetap pada tabel proses OS sebagai proses zombie, yang menunjukkan bahwa tidak akan dijadwalkan untuk masa depan, tetapi proses ini tidak dapat sepenuhnya dihapus atau ID proses tidak akan digunakan sampai pintu keluar telah ditentukan dan tidak lagi diperlukan.

Ketika seorang anak menyelesaikan proses, proses master akan menerima sinyal SIGCHLD untuk menunjukkan bahwa salah satu proses anak yang telah selesai melaksanakan; proses induk biasanya akan memanggil status sistem menunggu () pada saat ini. Status yang akan memberikan orang tua dengan status yang proses exit anak, dan akan menyebabkan proses anak akan menuai, atau dihapus dari tabel proses.

Daemon?

Linux adalah sistem operasi multi-tasking. Setiap program yang berjalan setiap saat disebut proses. Setiap perintah berjalan dimulai dengan setidaknya satu proses baru dan ada banyak jumlah proses sistem yang sedang berjalan.

Setiap proses diidentifikasi oleh nomor ID disebut Process (PID). Mirip dengan file, setiap proses memiliki pemiliknya dan kelompok, dan kelompok dan izin pemilik berguna untuk mengidentifikasi file dan perangkat terkait dengan proses-proses tersebut. Kebanyakan proses juga memiliki proses induk mereka sendiri yang mulai mereka.

Contoh: Shell adalah sebuah proses, dan setiap perintah dieksekusi di shell adalah proses yang termasuk proses induk shell. Pengecualian adalah proses khusus yang disebut init (8) yang merupakan proses pertama yang mulai booting waktu dan yang memiliki PID (Process ID) dari 1.

Beberapa program yang akan dijalankan dengan input pengguna terus-menerus dan terputus dari terminal. Misalnya, web server merespon permintaan web, bukan input pengguna. mail server adalah contoh lain dari aplikasi jenis ini. Program jenis ini juga dikenal sebagai daemon.

Proses latar

Setiap proses harus mulai berjalan di latar depan. Ia mendapat input dari keyboard dan mengirimkan output ke layar setelah proses.

Anda dapat melihat hal ini terjadi dengan perintah ls. Jika saya ingin daftar semua file dalam direktori saya saat ini, saya dapat menggunakan perintah berikut -

Ini akan menampilkan semua file dalam direktori saat ini.

 # ls
lost + found user1 user2 

proses berjalan di latar depan dan akan mengarahkan output ke layar saya, dan jika perintah ingin masukan apapun itu menunggu masukan.

Sementara program ini berjalan di latar depan dan mengambil begitu banyak waktu, kita tidak bisa menjalankan perintah lain dari command prompt yang dapat tersedia sampai program selesai pengolahannya.

Proses latar belakang

Sebuah proses latar belakang berjalan tanpa interaksi pengguna. Jika proses latar belakang membutuhkan masukan, itu menunggu.

Keuntungan dari menjalankan proses di latar belakang adalah bahwa Anda dapat menjalankan perintah lain, dan Anda tidak harus menunggu sampai selesai untuk memulai proses lain.

Cara paling mudah untuk memulai proses latar belakang adalah dengan menambahkan ampersand (&) pada akhir perintah kita mengeksekusi.

 # Menemukan. /> File 

Di atas akan menulis output ke file file dengan semua file dan direktori yang akan mengambil lebih banyak waktu. Jadi, misalnya, ampersand (&) pada akhir baris akan berjalan di latar belakang sebagai sebuah proses dan kursor akan datang untuk meminta menunggu perintah lain.

 # Menemukan ./> file &
[1] 76.742
# 

Baris pertama berisi informasi tentang proses latar belakang tentang berapa proses latar belakang berjalan dan jumlah pekerjaan atau proses ID. Kita perlu mengetahui PID untuk memanipulasi itu antara latar belakang dan latar depan.

Jika Anda menekan Enter sekarang, kita dapat melihat output berikut

 [1] + Selesai menemukan. /> File 

Baris pertama memberitahu Anda bahwa proses latar belakang perintah find selesai dengan sukses dan menunggu perintah lainnya.

Listing Menjalankan Proses

Perintah ini akan daftar proses sendiri dengan berjalan, ps (status proses) perintah.

 # ps
 PID TTY WAKTU CMD
 69.301 pts / 0 00:00:00 pesta
 78.926 pts / 0 00:00:00 ps 

bendera yang biasa digunakan untuk ps adalah -f, f akan menampilkan informasi lengkap, yang menyediakan informasi lebih lanjut seperti yang ditunjukkan di bawah ini.

 # Ps -f
UID PID PPID C stime TTY WAKTU CMD
akar 69301 69261 0 13:34 pts / 0 00:00:00 -bash
akar 79099 69301 0 13:51 pts / 0 00:00:00 ps -f 

Penggunaan penuh Command PS

 # Ps --help
********* Pilihan sederhana ********* ********* seleksi oleh daftar *********
-A Semua proses -C dengan nama perintah
N pilihan meniadakan -G oleh ID kelompok nyata (mendukung nama)
-a semua w / tty kecuali pemimpin sesi -U oleh ID pengguna nyata (mendukung nama)
-d semua kecuali pemimpin sesi -g oleh sesi OR dengan nama kelompok yang efektif
-e semua proses p oleh ID proses
                                      q oleh ID proses (disortir & cepat)
T semua proses pada proses terminal ini -s dalam sesi yang diberikan
semua w / tty, termasuk pengguna lain t oleh tty
g OBSOLETE - JANGAN GUNAKAN -u oleh ID pengguna efektif (mendukung nama)
r hanya menjalankan proses U memproses untuk pengguna tertentu
x proses w / o mengendalikan tty t oleh tty
*********** Format output ********** *********** opsi panjang ***********
-o, o user-didefinisikan -f penuh --Group --user --pid --cols --ppid
j, j kontrol pekerjaan s sinyal --group --user --sid --rows --info
O, O dimuat memori virtual -ov --cumulative --format --deselect
l, l u panjang berorientasi pengguna --sort --tty --forest --version
-F Ekstra register penuh X --heading --no-pos --context
                                      --quick-pid
                    ********* Pilihan misc *********
-V, V show version daftar L Kode Format f ASCII hutan seni
-m, m, L, -T, H benang S anak di sum-y mengubah format yang l
-M, Keamanan data Z c benar nama perintah -c kelas penjadwalan
-w, keluaran lebar w n WCHAN numerik, UID -H hirarki proses

menghentikan Proses

Sebuah proses dapat dihentikan dengan beberapa cara. Seringkali, dari baris perintah, dengan mengirimkan CTRL + C keystroke - akan keluar perintah. Ini bekerja ketika proses sedang berjalan di latar depan.

Jika proses berjalan dalam modus latar belakang, maka pertama Anda akan perlu untuk mendapatkan ID Kerja dengan menggunakan perintah ps dan setelah itu Anda dapat menggunakan perintah kill untuk membunuh proses sebagai berikut -

 # Ps -f
UID PID PPID C stime TTY WAKTU CMD
akar 69301 69261 0 13:34 pts / 0 00:00:00 -bash
akar 82913 69301 0 13:58 pts / 0 00:00:00 ssh root@192.168.1.89
akar 82952 69301 0 13:58 pts / 0 00:00:00 ps -f

 # Membunuh 82.913
dihentikan 

Berikut membunuh perintah akan mengakhiri root@192.168.1.89 ssh. Jika proses mengabaikan membunuh biasa, kita dapat menggunakan membunuh -9 diikuti oleh ID proses sebagai berikut.

 # Ps -f
UID PID PPID C stime TTY WAKTU CMD
akar 69301 69261 0 13:34 pts / 0 00:00:00 -bash
akar 83964 69301 0 14:00 pts / 0 00:00:00 ps -f
[1] + Tewas root@192.168.1.89 ssh 

Bagaimana kita bisa melihat apakah ada proses zombie berjalan pada sistem.

Jalankan "ps aux" dan mencari Z di kolom STAT.

 # Ps aux
Peringatan: sintaks yang buruk, mungkin palsu '-'? Lihat /usr/share/doc/procps-3.2.8/FAQ
PENGGUNA PID% CPU% MEM VSZ RSS TTY STAT MULAI WAKTU COMMAND
akar 11.647 0,0 0,1 549.100 7348? S Mar18 00:13 / usr / libexec / jam-applet --oaf-mengaktifkan-iid = OAFIID: GNOME_ClockApplet_Factory --oaf-IOR-fd = 28
akar 11.648 0,0 0,1 400.744 5552? S Mar18 00:00 / usr / libexec / gdm-user-switch-applet --oaf-mengaktifkan-iid = OAFIID: GNOME_FastUserSwitchApplet_Factry --oaf-IOR-fd = 34
akar 11.649 0,0 0,1 290.996 4072? S Mar18 00:00 / usr / libexec / pemberitahuan-area-applet --oaf-mengaktifkan-iid = OAFIID: GNOME_NotificationAreaApplet_Factory --oaf-IOR-fd = 40
akar 11.681 0,0 0,0 137.416 1524? S Mar18 00:00 / usr / libexec / gvfsd-membakar --spawner: 1,9 / org / gtk / gvfs / exec_spaw /
akar 11.696 0,0 0,0 135.276 1320? S Mar18 00:00 / usr / libexec / gvfsd-metadata
akar 12.196 0,0 0,0 0 0? Z Mar18 00:20 [yumBackend.py] <mati
akar 13.284 0,0 0,1 303.428 6212? Sl Mar18 00:00 gnome-terminal
akar 13.286 0,0 0,0 8228 620? S Mar18 00:00 gnome-pty-helpe
akar 13.287 0,0 0,0 108.340 1340 pts / 0 Ss + Mar18 00:00 bas
akar 14.347 0,0 0,0 223.336 3408? S 10:50 00:00 smbd -D
akar 14.578 0,0 0,4 425.524 18.172? Ss Mar25 00:21 / usr / sbin / http
apache 15.091 0,0 1,5 414.648 61.904? S Apr05 00:44 php-fpm: pool ww
postfix 18.359 0,0 0,0 80.948 3.384? S 12:24 00:00 Penjemputan l t FIFO u 

Dalam contoh di atas, proses dengan proses ID 12196 adalah memiliki status z, gunakan perintah kill untuk membunuh proses yang

 #kill -9 12196 

Setelah artikel ini Anda dapat memahami apa yang proses zombie dan daemon dan bagaimana untuk mengetahui itu dan bagaimana menghentikannya, juga bagaimana membuat proses di latar.