Blogroll

Selasa, 07 Februari 2012

Basic Proses Management

Proses pada Linux didasarkan pada Unix, dimana telah menjadi kebijakan umum untuk menjalankan beberapa user dan beberapa perintah, Pada saat yang sama dan pada sistem yang sama pula

Dibawah ini konsep  proses pada sistem operasi:
  • Setiap proses diberi nomor khusus sebagai identifikasi yang disebut proses idenfifikasi (PID), PID ini berupa angka integer yang unik
  • Jika proses selesai maka semua sumber daya yang digunakan termasuk PID akan dibebaskan kembali
  • Proses dibuat dengan mengunakan sistem call fork yang sering disebut Forking proses
  • Sistem call fork memproses pemanggil sehingga akan terdapat dua proses yaitu:
  1. Proses pemanggil disebut Parent
  2. Proses hasil copy - an disebut Child

Type proses pada Linux

Interaktif proses
interaktif proses adalah proses inisial yang dikontrol dalam sebuah terminal artinya ada seorang yang terhubung dengan sistem untuk memulai proses ini, sistem tidak dapat berjalan secara otomatis.
Untuk memudahkan user, Shell menawarkan fitur yang disebut control job, fitur ini dapat memungkinkan penangan beberapa proses dengan mudah, untuk mengunakan fitur ini kita harus mengunakan perintah xtream

Dibawah ini perintah mengunakan xtream

 Gambar : Perintah xterm

ket : Perintah xterm akan membuka terminal baru, seperti pada gambar diatas

Dibawah ini fitur job control yang dijelaskan secara rinci dalam bash halaman info 



Bagian dari perintah
Makna command
regular_command Menjalankan perintah dilatar depan
Command & Menjalankan perintah dilatar belakang
Job Menampilkan pekerjaan yang berjalan dilatar belakang
Ctrl + Z Menghentikan tetapi tidak berhenti proses yang berjalan dilatar depan
Ctrl + C Menghentikan dan berhenti proses yang berjalan dilatar depan
%n Setiap proses yang berjalan dilatar belakang mendapatkan nomor id
bg Menampilkan kembali program yang berjalan di latar belakang
fg Menempatkan kembali pekerjaan yg dilatar depan
kill Mengakhiri proses
contoh yang lebih praktis dlm tabel diatas dapat ditemukan dalam latihan


Proses otomatis
Proses otomatis atau proses batch tidak terhubung ke terminal sebaliknya, ini adalah tugas yang mendapatkan antrian ke daerah spooler, dimana mereka menunggu untuk dieksekusi secara FIFO (first in - first out), tugas tersebut dapat dieksekusi menggunakan salah satu dari dua kriteria dibawah ini:
  • Pada tanggal dan waktu tertentu, dilakukan dengan mengunakan perintah at
  • Pada saat beban sistem rendah untuk menerima jo tambahan, maka dilakukan dengan mengunakan perintah batch. secara default, tugas diletakan dalam antrian dimana mereka akan menunggu untuk dieksekusi sampai beban sistem rendah. Dalam lingkungan pekerjaan yang besar, seorang administrator sistem dapat memilih batch proses ketika begitu banyak jumlah data yang akan diproses. Batch procesing digunakan juga untuk mengoptimalkan kinerja sistem.


Daemon
Daemon adalah proses server yang berjalan secara terus - menerus, sebagian besar waktukya diinisialisasikan pada saat start up sistem dan kemudian menunggu dilatar belakang sampai layanannya diperlukan, sebuah contoh yang sederhana daemon jaringan xinetd, yang dimulai hampir disetiap prosedur boot. setelah sistem di Boot Daemon jaringan hanya menunngu untuk dihubungkan ke program klien seperti klien FTP 


Proses attribut
Sebuah proses memiliki beberapa serangkain attribut, yang dapat dilihat dengan mengunakan perintah ps, Dibawah ini contoh perintah ps
Gambar : Perintah ps
Dibawah ini penjelasan serangkaian attribut proses yang diatas:

ID Proses / PID Proses: Nomor identifikasi unik

Proses induk ID / PPId: Jumlah proses PID yg memulai proses ini

Nice Number              :  Nomor proses untuk menuju keproses lainnya

Terminal/tty                : Terminal/consol yang digunakan

Nama pengguna         : User yg memberikan peritah utk melakukan proses pada sistem
Group                         : Kelompok pengguna yang memulai proses



Menampilkan informasi proses
Perintah ps adalah salah satu alat untuk menampilkan proses pada sistem UNIX, perintah ini memiliki beberapa pilihan untuk yang dapat dikombinasi untuk menampilkan proses attribut yang berbeda, Tanpa opsi tersebut, ps hanya memberikan informasi tentang shell saat ini dan proses akhirnya
Gambar : Perintah ps
Perintah diatas umumnya tidak dapat memberikan informasi yang cukup, Biasanya kita akan memilih proses tertentu dari daftar proses yang ada dengan mengunakan perintah grep, seperti perintah dibawah ini yang akan menyeleksi proses dari user tertentu.
Gambar: Perintah ps -ef | grep hairul
Dibawah ini contoh proses yang menunjukan semua proses dengan nama proses bash, shell login paling umum dalam sistem UNIX


Gambar: Perintah ps auxw | grep bash

Dalam kasus ini perintah grep untuk menemukan baris yang mengandung bash string, bash string sering ditampilkan juga pada sistem yang memiliki banyak idletime, jika anda tidak ingin ini terjadi gunakan perintah pgreb. 
Dibawah ini perbedaan perintah ps auxw | grep bash dgn ps auxw | pgrep bash

Untuk info lebih lengkap meneganai perintah ps, ps --help atau man ps

Gambar: Perintah ps --help

Gambar: man ps

untuk menampilkan informasi baris pertama pada perintah ps, gunakan perintah uptime.
Data untuk program ini disimpan di  /var/run/utmp dan dalam sistem file virtual pada /proc, ada berbagai macam applikasi yang dapat digunakan untuk melihat data ini dintaranya GNOME sistem monitor dan lavaps.
Hubungan antar proses dapat divisualisasikan dengan mengunkan perintah ps tree, Dibawah ini contoh perintah ps tree


Gambar: Perintah pstree
-u dan -a pada perintah pstree adalah attribut untuk melihat informasi tambahan, untuk mengetahui lebih lanjut tentang pstree lihat halaman info pstree


Memulai proses dan Mengakhiri proses


Memulai proses

Sebuah proses baru dibuat karena proses yang ada membuat salinan dirinya sendiri (child), Proses child memiliki lingkungan yang sama dengan Parent, hanya nomor ID proses yang berbeda, prosedur ini disebut Forking proses, setelah forking proses terjadi ruang alamat dari proses child diganti dengan proses baru, hal ini dilakukan melalui pangilan exec ke sistem


fork dan exec adalah mekanisme yang beralih dari perintah lama ke perintah baru, sementara lingkungan program yang baru dijalankan tetap sama, termasuk dari konfigurasi input, output, variabel, dan prioritas. mekanisme ini digunakan untuk membuat proses pada UNIX juga berlaku pada sistem operasi Linux. skema ini mengambarkan mekanisme fork dan exec
Dibawah ini gambar skema mekanime fork dan exec


Ada beberapa kasus dimana init menjadi induk dari beberapa proses, sedangkan proses itu tidak dimulai oleh init seperti yang sudah dilihat dalam contoh pstree


Mengakhiri Proses

Ketika proses biasanya tidak dibunuh atau tiba - tiba terputus, program mengembalikan status keluaran ke parent proses, status ini dikelurkan adalah nomor pemberian hasil pelaksanaan program.



Signal pada proses

Proses dapat berakhir karena sistem menerima signal, ada beberapa signal yang dapat dikirim untuk mengakhiri proses, maka gunakan perintah killl, perintah kill -l menampilkan daftar signal. 
 Dibawah ini contoh perintah kill -l 
  •  root@pc-48-desktop:/# kill -l
Gambar: Perintah kill -l



kebanyakan signal digunakan oleh sistem internal atau programer yang menulis script. sebagai pengguna anda akan memerlukan signal berikut:

Tabel signal yg umum digunakan


Nama signal Jumlah sinyal Makna
SIGTERM 15 Hentikan proses dalam cara yang teratur.
SIGINT 2
Mengganggu proses ini. Sebuah proses dapat mengabaikan sinyal ini.
SIGKILL 9
Mengganggu proses ini. Sebuah proses tidak bisa mengabaikan sinyal ini.
SIGHUP 1 Untuk daemon: membaca ulang file konfigurasi.



Anda dapat membaca lebih lanjut tentang tindakan default yang diambil ketika mengirimkan sinyal ke sebuah proses dalam man 7 signal .

Dibawah ini terdapat beberapa pertayaan mengenai pembahasan diatas:

Questions:
1. use ps to search to init process by name?
Untuk menggunakan perintah ps mencari process init by name maka gunakan perintah ps --help. Perintah ini untuk mendapatkan informasi tentang penggunaan perintah ps. Dibawah ini contoh perintah ps --help
  •  root@pc-48-desktop:/# ps --help
 Gambar: ps --help
Untuk menjawab pertayaan diatas maka gunakan perintah ps -C init atau dengan mengunakan perintah top kemudian lihat pada field command dan lihat pada column init. Dibawah ini contoh perintah ps -C init
  • root@pc-48-desktop:/# ps -C init
 Gambar: Perintah ps -C init

Dibawah ini contoh perintah top
  • root@pc-48-desktop:/# top
  Gambar: Perintah top

2. what is process id of the init process?
Untuk menjawabnya lihat kembali terminal anda pada perintah ps -C init lihat PIDnya.
PID : Id process
TTY : Untuk melihat consol yang dipakai
Time : Waktu
CMD : untuk melihat perintah yang digunakan
Disini terlihat bahwa PID dari command init 1
3. use the who am i command to the terminant your terminal name?
Untuk melihat nama terminal anda maka gunakan perintah who am i.
note: perintah who am i : menampilkan nama host, consol yang dipakai, dan waktu pada saat perintah digunakan sedangkan perintah whoami: hanya menampilkan nama user. Dibawah ini contoh perbedaan perintah who am i dengan whoami
  • root@pc-48-desktop:/# who am i
  • root@pc-48-desktop:/# whoami 

 Gambar: Perintah who am i & whoami

4. using the terminal name for above, use ps to find all process associate with your terminal?
Untuk mencari process assosiasi pada perintah sebelumnya seperti pada perintah diatas, maka gunakan perintah ps fx |grep pts/0. Dibawah ini contoh perintah ps fx |grep pts/0
  • root@pc-48-desktop:/# who am i
  • root@pc-48-desktop:/# ps fx |grep pts/0 
 Gambar Perintah ps fx |grep pts/0
note: pts/0 : consol yang dipakai pada perintah sebelumnya

5. what is the process id of your shell?
Untuk menampilkan process id shell anda maka gunakan perintah echo $$. Dibawah ini contoh perintah echo $$
  • hairul@pc-48-desktop:/# echo $$ 
 Gambar: Perintah echo $$

Disini terlihat process id shell saya 1961, perintah echo $$ hanya digunakan jika shell yang anda gunakan bash, untuk mengetahui shell apa yang anda gunakan maka gunakan perintah echo $SHELL. seperti pada gambar dibawah ini
  • hairul@pc-48-desktop:/# echo $SHELL
 Gambar: Perintah echo $SHELL
note: Disini terlihat shell yang saya gunakan yaitu bash

6. What is the parent process id of your shell?
Untuk melihat parent process id (PPID) maka gunakan perintah echo $$ $PPID
seperti pada gambar dibawah ini
  • root@pc-48-desktop:/# echo $$
  • root@pc-48-desktop:/# echo $$ $PPID
 Gambar: Perintah echo $$ $PPID
Disini terlihat bahwa id 1961 merupakan process Parent (induk) sedangkan id 1953 merupakan process child atau process anak

7. Start two instances of the sleep 3342 in background?
Untuk menjawabnya maka buatlah dua buah process sleep 3342 di Background. Dibawah ini contoh perintah sleep 3342
  • root@pc-48-desktop:/# sleep 3342


Gambar: Perintah sleep 3342

note:
Sleep : Perintah sleep

3342 : Lama waktu yang diperintah pada process sleep

& : Attribut dari perintah sleep yang ditambahkan untuk menjalankan sebuah process di latar belakang

8. Locate the prcess id of all sleep command?
Untuk melihat process id dari semua perintah sleep maka gunakan perintah ps fx |grep sleep atau menggunakan perintah ps -ef |grep sleep. Dibawah ini contoh dari perintah ps fx |grep sleep dan perintah ps -ef |grep sleep
  • root@pc-48-desktop:/# ps fx |grep sleep
  • root@pc-48-desktop:/# ps -ef |grep sleep

 Gambar: Perintah ps fx |greep sleep & ps -ef |greep sleep

ket:  
ps  : Perintah utk menampilkan proses
-f    : full
-e   : all process
-x   : process w/o controling tty

9. Display only those two sleep process in top. then quit top?
Untuk menampilkan dua process dari sleep dengan menggunakan perintha top maka terlebih dahulu kita harus mengetahui informasi tentang perintah top. untuk mengetahui informasi tentang perintah top gunakan perintah top --help
  • hairul@pc-48-desktop:/# top --help
Gambar: Perintah top --help

jadi untuk menampilkan dua process sleep yang sudah kita buat dengan mengunakan perintah top maka terlebih dahulu kita harus mengetahui PID dari proses sleep yang baru kita buat, untuk mengetahui terlebih dahulu PID dari proses sleep maka gunakan perintah ps fx |grep sleep. Dibawah ini contoh dari perintah ps fx |grep sleep
  • hairul@pc-48-desktop:/# ps fx |grep sleep
 Gambar: Perintah ps fx |grep sleep

Jadi untuk menjawab pertayaan no 9 maka kita gunakan perintah top -p (nomor PID). Dibawah ini contoh perintah top -p (nomor PID)
  • hairul@pc-48-desktop:/# top -p 4992
Gambar: Perintah top -p 4992
ket:
top : Menampilkan task manager pada linux
-p : option pada perintah top
4992 : PID pada process sleep
Untuk quit dari perintah top maka tekan tombol Q kemudian enter

Yang saya tanyakan kembali? Bagaimana menampilkan kedua proses sleep dengan menggunakan sebuah perintah top, sebab saya sudah mencoba menggunakan perintah top -p 4992 | 5068 dan perintah top -p 4992 & 5068 tetapi tidak bisa? Lihat gambar dibawah ini



10. Use a standard kill to kill one of the sleep process
Untuk mengakhiri proses maka gunakan perintah kill (option) (PID). Dibawah ini perintah kill standard yang biasa saya pakai. untuk megetahui informasi signal pada perintah kill maka gunakan perintah kill -l


  • hairul@pc-48-desktop:/# kill signal 4492
Gambar: Perintah kill signal 4492
ket:
kill : Perintah untuk mengakhiri proses
signal : Option pada perintah kill
4492 : PID pada salah satu perintah sleep

kemudian kita lihat kembali PID 4492 pada proses sleep tadi apakah sudah terbunuh atau belum, jika belum terbunuh saya sarankan gunakan option -9 pada signal kill seperti dibawah ini kill -9 4492

 
Disini terlihat bahwa PID 4492 telah hilang jadi prosesnya telah terbunuh

11. Use one command to kill all sleep process?
Untuk membunuh semua proses sleep maka gunakan perintah pkill -9 sleep
  • hairul@pc-48-desktop:/# pkill -9 4492
Disini terlihat bahwa proses sleep dengan PID 3342 telah terbunuh




Sampai Disini dulu pertemuan kita, lebih dan kurangnya saya mohon maaf























































































































































































0 komentar:

Posting Komentar