Anda di halaman 1dari 13

Manajemen proses

Linux

Obbjectives:
Mengenal Konsep Proses di linux dan unix
 Mengerti konsep sinyal dan bagaimana cara
mengelola
Sinyal tersebut
Konsep sebuah Proses di Linux/Unix

Setiap kali intruksi diberikan pada Unix shell,maka kernel


akan menciptakan sebuah proses-id. Proses ini disebut juga
dalam terminologi UNIX sebagai sebuah JOB.

Proses id (PID) dimulai dari 0, yaitu proses INIT kemudian


diikuti oleh proses berikutnya(terdaftar pada /etc/inittab).

Beberapa tipe Proses:

 Foreground
Proses yang diciptakan oleh pemakai langsung
Pada terminal (interaktif/ dialog)

 Batch
Proses yang dikumpulkan dan dijalankan secara
sekuensial (satu peratu).Proses Batch tidak
diasosiasikan (sberinteraksi) dengan terminal.

 Daemon
Proses yang menunggu permintaan (request) dari
Proses lainya dan menjalankan tugas sesuai dengan
permintaan tersebut.

Bila tidak ada request,maka program ini akan berada


dalam kondisi “idle”(tidur) dan tidak menggunakan waktu
hitung CPU.

Umumnya nama proses daemon di UNIX Berakhiran d,


misalnya inetd, named, popd dan lainya.
Status Proses

Intruksi ps (process status) digunakan untuk melihat kondisi


proses yang ada.
$ ps
PID TTY STAT TIME COMMAND
42 v01 S 0 : 00 sh
286 v01 R 0 : 00 ps

PID Prosess Id (Nomor Identitas Proses)


TTY Nama Terminal, dimana proses tersebut aktif
STAT S (Sleeping), R(Running)
COMMAND Intruksi yang digunakan

Catatan :
Proses sh adalah shell yang aktif pada saat Anda login
kedalam sistem dan proses sh ini akan menunggu instruksi
dari pemakai. Bila shell menjalankan instruksi,maka shell
menciptakan proses anak dan menunggu hingga proses
tersebut selesai.

Untuk melihat factor/ elemen lainya, gunakan Option –u


(user)
$ ps -u
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
nane 42 0.1 6.8 376 432 v03 S
12 :02 0 :00 sh
nane 289 0.3 3.4 83 264 v03 R
12 :14 0 :00 ps –u

%CPU Presentasi CPU TIME yang digunakan oleh


proses tersebut
%MEM Presentasi sistem Memori yang digunakan proses
SIZE Jumlah memori yang digunakan
RSS Real System Storage, jumlah yang digunakan
START kapan proses tersebut diaktifkan.
Mencari proses untuk spesifik pemakai, digunakan option
seperti dibawah ini:

S ps -u amir

Proses diatas hanya terbatas pada proses milik pemakai,


dimana pemakai tersebut melakukan login.

Untuk melihat proses lainya,gunakan option –a (all)

S ps -a
……….

Atau untuk lebih lengkap lagi:

S ps -au
…………
Sinyal
Proses dapat mengirim dan menerima sinyal dari dan ke
proses lainya.

Proses mengirim sinyal melalui instruksi “kill”dengan tata


penulisan:

Kill [-nomor sinyal ] PID

Nomor sinyal adalah 1 sampai dengan maksimum Nomor


sinyal yang didefinisikan oleh system (tergantung versi UNIX
yang digunakan).Standart Nomor sinyal yang terpentingkan
dapat dilihat pada tabel:

No Nama Deskripsi
Sinyal
1 SIGHUP Hangup,sinyal dikirim bila
proses terputus, misalnya
melalui putusnya
hubungan modem
2 SIGINT Sinyal Interrupt,melalui ^C
3 SIGQUIT Sinyal Quit,melalui ^\
9 SIGKILL Sinyal Kill, menghentikan
proses
15 SIGTERM Sinyal Terminasi Software
Contoh:
## Sebuah shell script : loop.sh
while [ 1 ]
do
echo “. \ c”
slepp 10
done

S chmod +x loop.sh
S ./loop.sh &
Lihat proses id:

S ps
PID TTY STAT TIME COMMAND
42 v01 S 0 :00 sh
386 v01 S 0 :00 loop.sh
391 v01 R 0 :00 ps

Hentikan proses tersebut dengan:


s kill -15 386

atau

s kill 386

Default nomor sinyal adalah 15!

Untuk menghentikan sinyal secara mutlak,gunakan


sinyal nomor 9.

s kill -9 386
Tutorial proses

Tugas:
Login sebagai amir dan lihat proses status, Perhatikan
kolom keluaran ps –au sebagai berikut:

1.1 Sebutkan nama-nama proses yang bukan root

1.2 Tulis PID dan COMMAND dari proses yang


paling banyak menggunakan CPU Time

1.3 Sebutkan buyut proses dan PID dari proses


Tersebut

1.4 Sebutkan beberapa proses daemon


1.5. Pada prompt login anda lakukan beberapa hal
sebagai berikut:
S csh
S who
S bash
S ls
S sh
S ps

Sebutkan PID yang paling besar, dan kemudian buat urut-


urutan proses sampai ke PPID = 1.

Lakukan ^d atau exit atau logout sampai kembal muncul


login: prompt

2.Mengirim Sinyal
Mengirim sinyal adalah satu alat komunikasi antar proses,
yaitu memberikan proses yang sedang berjalan bahwa ada
“sesuatu” yang harus dikendalikan.

Berdasarkan sinyal yang dikirim ini maka proses dapat


bereaksi dan administrator/programmer dapat menentukan
reaksi tersebut.

Megirim sinyal dilakukan dengan instruksi:

kill [-nomor sinyal ] PID


Sebelum mengirim sinyal, maka PID proses yang
akan dikirim harus diketahui terlebih dahulu.

Contoh:

# kill 3928
Mengirim sinyal 15 (SIGTERM) pada proses dengan
PID 3928. Nomor sinyal ini adalah default.

#kill -9 2981
Meenghentikan proses dengan PID= 2981

Tugas 2.1

Login ke sistem dan buat program shell berikut ini:


s vi prog .sh
# ! /bin/sh
echo “ program berjalan…“
while :
do
echo “x”
sleep 20
done
Jalankan program tersebut:

s chmod +x prog .sh


s . /prog . sh

……………

Karena program tersebut melakukan looping, maka stop


dengan mengirim sinyal interrupt (dalam hal ini diciptakan
oleh keyboard melalui ^C)

Tugas 2.2:
Jalankan program tersebut sebagai “background”

s ./prog .sh &

Catat nomor PID proses tersebut , dan periksa melalui ps

Kirim sinyal terminasi sebagai berikut:

$ kill PID ### PID adalah nomor yang telah dicatat


sebelumnya

Tugas 2.3:

Tangkap sinyal yang dikirim melalui instruksi trap sebagai


berikut:

# ! /bin/ sh
trap “ “ 1 2 3 15
echo “ Program berjalan….”
while :
do
echo “x”
sleep 20
done
Coba lagi sebagai proses background:

s . /prog .sh &

Dan coba lakukan kill dengan nomor PID yang


Bersangkutan:

$ kill PID atau kill -1 PID atau -2 PID atau

Bila tidak bias juga lakukan kill -9 PID !!!! Ini tak ada
penghalangnya!

Tugas 2.4:
Modifikasi program sebagai berikut:

# ! /bin/ sh
Trap “echo Hello Godbye ; exit 0 “ 1 2 3 15
echo “Program Berjalan …..”
while :
do
echo “x”
sleep 20
done

3. No Hangup !
Adakalanya sebuah proses sortir misalnya Memerlukan
waktu yang cukup lama,sehingga perlu dilakukan sebagai
proses background.Namun bila proses tesebut masih
berlangsung dan kita melakukan logout (exit), maka
otomatis proses tersebut ikut berhenti, artinya proses sortir
harus diulang kembali.

Simulasikan proses sort sebagai berikut:


$ vi my job. sh
# ! / bin/ sh
i =1
while :
do
find / -print > berkas
sort berkas -O hasil
echo “Proses selesai pada ‘date’” >> proses.log
sleep 60
done

Jalankan proses tersebut sebagai background:

$ chmod +x my job . sh
$ . /myjob . sh

Logout dan login kembali !


Periksa sampai dimana job tersebut bekerja ?

Bagaimana agar job tersebut tetap berjalan


walaupun pemakainya logout ?

Jawabanya adalah menggunakan nonhup (No Hangup).


Catatan : fungsi ini tidak berjalan di non System V (Linux)

$ nonup myjob.sh

Logout dan login kembali, bila benar maka job Tersebut


masih berputar putar ! Hentikan dengan kill.
Tugas:

Buat trap sedemikian rupa,sehingga bila proses tersebut


dihentikan (kill) , maka otomatis file berkas akan terhapus.

# ! /bin / sh

trap

i =I
while :
do
find / -print > berkas
sort berkas -o hasil
echo “Proses selesai pada ‘date’ “ >> proses. Log
sleep 60
done

$ kill -15 PID

$ ls -1
………………………………………./// File berkas tidak ada lagi !