Manajemen Proses di LINUX (part 2)

Jobs control adalah fasilitas yang memungkinkan suatu program dihentikan secara sementara dan kemudian dijalankan kembali. Fasilitas ini dapat dipakai untuk memindahkan program yang sedang berjalan secara background (dilatar belakang) ke foreground (di latar depan) atau sebaliknya. Fasilitas ini meniru fasilitas pada C shell.
Jika seseorang memberikan perintah (script shell, utilitas atau program), perintah tersebut akan menjadi sebuah job, terlepas perrintah itu dijalankan dilatar depan atau belakang.
Jobs control biasanya diaktifkan secara otomatis begitu berada di prompt (shell). Untuk mengetahui fasilitas ini sudah dijalankan atau belum, dapat deketahui dengan perintah :
$ set –o | grep monitor
monitor on
Jika perintah di atas menghasilkan informasi berupa “monitor on” berarti fasilitas job control sudah diaktifkan. Apabila fasilitas tesebut belum aktif, dapat diaktifkan dengan perintah :
$ set -o monitor
$ set -m
Untuk menjalankan perintah di background, perlu akhiran & disetiap perintah yang akan dijalankan.
$find / -name *.c –print > c.out 2> c.error &

Perintah diatas dipakai untuk memperoleh semua file berakhiran *.c dari root (/) danhasilnya ditempatkan ke file c.out. Adapun kalau ada sesuatu kesalahan (misalnya karena tidak diperkanankan membaca direktori tertentu berhubungan dengan ijin akses) kesalahan tersebut direkam ke file c.error. Proses ini dilakukan dibelakang layar, dan diberi nomor job dan identitas proses (PID).
Apabila nomor job adalah satu dan jobs belum berakhir, maka jika diberikan job kedua, maka nomor job tersebut sama dengan 2.
$ du / > du.out 2>1 &
[2] 272
Perintah du digunakan untuk memperoleh blok dari setiap file atau direktori. Setelah nomor job kedua diatas, jika dijalankan satu job lagi, maka :
$ sleep 500 & #tidak melakukan apa-apa selama 500 detik
[3] 273
Untuk melihat status proses dari perintah yang dieksekusi dilatar belakang, dapat digunakan perintah jobs.
$ jobs
[1] Stopped vi file1.txt &
[2] – Running ps –aux &
[3] + Running sleep 500 &
Informasi dibagian kiri menyatakan nomor job. Tanda + sesudah nomor job menyatakan job yang terbaru. Tanda – menyatakan job kedua yang terbaru. Informasi seperti running menyatakan bahwa perintah job sedang dieksekusi (belum selesai). Kemungkinan lain informasi adalah :
Stopped : job sedang berhenti secara sementara (ditangguhkan)
Done : job sudah selesai dikerjakan.
Bagian terkanan menyatakan nama perintah. Pemakai dapat memberikan pilihan –p pada perintah jobs. Pilihan ini akan menyebabkan jobs menampilkan PID dari semua proses yang dieksekusi dilatar belakang.
$ jobs –p
300
302

Artinya ada dua proses di latar belakang dengan PID 300 dan 302. Pilihan (option) –l akan menampilkan informasi seperti jobs tanpa option dan informasi PID (nomor proses)
$ jobs –l
[2] + 300 Running sleep 300 &
[1] – 302 Running sleep 150 &
Job yang berjalan dilatar depan dapat dihentikan dengan menekan tombol <CTRL + Z>. Sebagai contoh, saat menjalankan perintah sleep 500 di latar depan, kemudian menekan tombol <CTRL + Z>, maka proses tersebut akan dihentikan sementara.
$ sleep 500
<CTRL + Z> [1] + Stopped sleep 500
Dengan menggunakan perintah jobs, status proses tersebut diatas dapat diketahui, sebagai berikut :
$ jobs
[1] + Stopped sleep 500
Job yang sedang ditangguhkan dapat diaktifkan kembali dengan cara diaktifkan dilatar belakang dan diaktifkan dilatar depan. Job yang sedang berhenti secara sementara dapat dijalankan kembali dilatar depan dengan cara menjalankan perintah fg. Dengan menjalankan perintah fg maka sleep 500 akan dijalankan di foreground, dan jika setelah di depan ingin ditangguhkan kembali tinggal menjalankan perintah bg.
$ sleep 500
<CTRL + Z>
[1] + Stopped sleep 500
$ bg #Eksekusi kelatar belakang
[1] sleep 500
Pada bentuk fg dan bg tanpa argumen, job terbarulah yang diproses. Sedangkan jika %n digunakan, job dengan nomor n yang diproses.
$ jobs
[2] + Running sleep 1000 &
[1] – Running sleep 200 &

$ fg %1
sleep 200 &
Proses yang sedang ditangguhkan ataupun yang sedang berada di latar belakang dapat dimatikan dengan menggunakan perintah kill.
$ kill %1 # job nomor 1 dihapus
[1] – Terminated sleep 200 &
Jika dikehendaki, pemakai dapat menyuruh shell menunggu suatu proses dilatar belakang selesai dieksekusi. Perintah yang diperlukan adalah wait. Perintahnya adalah wait %n, dengan n adalah nomor job dari proses latar belakang yang ditunggu.

Penjadwalan Proses

Pada sistem Linux, terdapat banyak cara untuk menangani eksekusi-eksekusi perintah. Diantaranya, diberi kesempatan untuk membuat daftar perintah dan menentukan kapan perintah dijalankan oleh sistem. Perintah at , sebagai contoh memberi peluang untuk menjalankan program berdasarkan waktu yang ditentukan. Perintah batch adalah semiliar dengan at, namun batch menjalankan program-program manakala sistem menemukan waktu untuk mereka. Perintah cron memungkinkan program untuk menjalankan secara pereodik, dan perintah crontab mengizinkan user untuk mengedit file-file yang digunakan oleh cron. Perintah-perintah scheduling tersebut sangat berguna sat ingin melakukan pengaturan terhadap sistem agar tidak terlalu sibuk menjalankan tugas-tugas. Teknik ini juga sangat baik untuk eksekusi script-script bagi layanan-layanan exksternal seperti query-query database.
Perintah at
Seperti telah diuraikan diatas, untuk menjadwalkan satu atau beberapa perintah pada waktu yang ditentukan dapat digunakan at. Sebagai contoh, untuk membentuk pekerjaan pada jam 2:30 a.m yakni melakukan pencetakan semua file yang terdapat pada direktori /home/mahasiswa/dimas dan melakukan pengiriman mail pemberitahuan ke user yang bernama anjik bahwa pekerjaan pencetakan telah dilakukan pukul 2.30 a.m. Untuk menuliskan shcedule pekerjaan dengan at yakni dengan menulis perintah baris demi baris dan menekan enter untuk masing-masing perintah dan untuk mengakhiri dapat digunakan <CTRL + D>.
$ at 2.30
lp /home/mahasiswa/dimas/*
echo “File sudah dicetak Pak !” | mail –s “Pencetakan “ dihinamajikan@yahoo.com
<CTRL + D>
Beberapa variasi penggunaan perintah at dapat dilakukan dengan :
At hh:mm : Penjadwalan kerja berdasarkan jam (hh) dan menit (mm),
menggunakan standard 24 jam
At hh:mm month
day year : Penjadwalan kerja berdasarkan jam (hh) dan menit (mm), bulan,
hari dan tahun tertentu
at –l : Mendaftar jadwal tugas-tugas, merupakan alias utk perintah atq.
At now +count
timeunit : Menjadwalkan pekerjaan sekarang plus hitungan berdasarkan
time-unit ; time unit dapat berupa menit, jam, hari atau minggu
at –d job_id : Membatalkan kerja dengan nomor job_id
Sebagai user root, dapat dengan bebas menjalankan perintah-perintah ini, sedangkan user lian, file-file /etc/at.allow dan /etc/at.deny menentukan permisi permisi menggunakan perintah tersebut. Jika file /etc/at.allow ada, maka hanya user-user yang tercantum dalam file tersebut yang diizinkan untuk menggunakan perintah at . Jika file /etc/at.allo tidak tersedia, sistem akan mengecek file /etc/at.deny yang akan memberikan izin penggunaannya, tapi kalau /etc/at.deny kosong, setiap user dapat menggunakan perintah at ini.  Perintah batch
Dalam sistem Linux tidak hanya memiliki satu perintah untuk penjadwalan tugas-tugas. Dengan menggunakan perintah batch user dapat memberikan kelonggaran terhadap sistem untuk memutuskan sendiri kapan proses dijalankan.
Perintah batch akan dijalankan oleh sistem jika sistem dalam keadaan tidak begitu sibuk. Tugas-tugas yang dijalankan melalui batch akan dieksekusi melalui background. Format menjalankan perintah batch yaitu dengan mengetikkan perintah di terminal dan mengakhiri dengan <CTRL + D> pada akhir baris.
contoh :
$ batch
lp /home/mahasiswa/dimas/*
echo “File sudah dicetak Pak !” | mail –s “Pencetakan “ dihinamajikan@yahoo.com
<CTRL + D>
Perintah cron dan crontab
Untuk menjalankan perintah atau proses yang harus dilakukan secara reguler, dapat menggunakan perintah cron (chronograph). Dengan cron dapat menentukan tanggal dan waktu yang diinginkan untuk menjalankan sebuah perintah dalam file-file crontab.
Program cron hanya dijalankan satu kali, yakni saat sistem di-boot. User-user individual hendaknya diberi izin untuk menjalankan cron secara langsung. Selain itu administrator juga menjalankan aplikasi cron pada start-up file Linux agar cron berjalan saat proses boot terjadi.
Perintah/Aplikasi yang dapat digunakan untuk menuliskan jadwal proses adalah crontab. Dalam file crontab ini konfigurasi penjadwalan proses tersimpan. File contab user disimpan dalam direktori /usr/spool/cron/crontabs dan memberi nama file tersebut dengan nama user. Sehingga jika usernya adalah icha, maka dapat digunakan file text editor untuk mengeditnya pada direktori tersebut.
$crontab icha
Dengan eksekusi perintah tersebut maka file /usr/spool/cron/crontabs/icha akan terbentuk.
Masing-masing baris dalam file crontab memuat sebuah pola waktu dan sebuah perintah. Di mana perintah tersebut akan dieksekusi pada pola waktu yang ditetapkan. Pola waktu dibagi dalam lima field yang dipisahkan oleh spasi atau tab.
Minute hour day-of-month month-of-year day-of-week command
Keterangan range waktu :
Minute : 00 s.d 59
Hour : 00 s.d 23 (tengah malam 00)
Day-of-month : 01 s.d 31
Month-of-year : 01 s.d 12
Day-of-week : 01 s.d 07 (Senin 01, Minggu 07)
Lima field pertama adalah field waktu, sedangkan satu field terkahir adalam field perintah. Dapat digunakan asterisk (*) dalam field waktu jika tidak ingin menentukan waktu – waktu tertentu.
Option perintah crontab terdiri dari :
-e : mengedit file contab
-r : menghapus isi file crontab
-l : Menampilkan daftar crontab

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: