Rabu, 06 Januari 2016

Starup & Shutdown

Starup & Shutdown


Memahami proses yang berlangsung pada saat startup dan shutdown akan memudahkan dalam mencari kesalahan (troubleshooting) ketika terjadi masalah yang berhubungan dengan startup dan shutdown komputer.


1. Proses Startup
Proses startup pada sistem Linux dapat dilihat pada gambar di bawah:


Keterangan:
1. Pertama kali mesin melakukan power on self test (pemeriksaan hardware).
2. Program BIOS yang ada di ROM akan dieksekusi.
3. Boot Loader yang ada di MBR akan dieksekusi.
4. Load Kernel Linux ( /boot/vmlinuz ) ke RAM.
5. Menjalankan program init.

  1. BIOS : Basic Input/Output System adalah antar muka level  terendah antara komputer dan peripheral. Bios melakukan pemeriksaan pada memori dan mencari instruksi pada Master Boot Record (MBR) pada floppy atau hard drive.
  2. MBR menunjuk ke boot loader (LILO : Linux boot loader)
  3. LILO akan menanyakan label sistem oper asi yang akan mengidentifikasi kernel yang dijalankan. Kernel akan menjalankan sistem operasi Linux .
  4. Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Init adalah root/parent dari semua proses yang dijalankan pada Linux.
  5. Proses per tama yang memulai init adalah skrip /etc/rc.d/rc/sysinit . 
  6. Berdasarkan run - level yang ditentukan, skrip dieksekusi untuk memulai proses tertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.
LINUX INIT PROCESS

Proses init adalah langkah ter akhir pada prosedur boot dan diidentifikasi sebagai process ide “1”. Init bertanggung - jawab untuk memulai proses sistem seperti yang ditentukan pada file /etc/inittab . Init biasanya memulai “ getty ” yang menunggu layar login yang  menandakan proses shell s eorang user. Pada saat shutdown, init mengontrol urutan dan proses untu shutdown. Proses init tidak pernah shut down. Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan sebagai root. Proses sistem :

Process IDDescription
0The Scheduler
1The init process
2kflushd
3kupdate
4kpiod
5kswapd
6mdrecoveryd
PROSEDUR BOOT

Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3” keatas adalah operasional penuh dengan semua proses yang esensial   dijalankan untuk interaksi user .  Berdasarkan sistem boot, Linux sistem akan melakukan :
  • Mengeksekusi program  /sbin/init yang memulai semua proses -proses lain. Program ini akan diberikan ke mesin oleh proses awal yang didefinisikan pada  file /etc/inittab
  • Komputer akan di -booting ke runlevel yang didefinisikan oleh baris initdefault pada file /etc/inittab .id:5:initdefault: 
Pada contoh diatas, runlevel ”5” dipilih.    Runlevel “5” akan melakukan booting sistem pada mode GUI menggunakan XDM dan X -Windows. Booting ke runlevel ”3” (biasanya disebut mode console) biasanya digunakan oleh server yang tidak memerlukan GUI.
File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del), memulai dial ke koneksi internet dll.
  • Satu dari proses- proses yang dimulai oleh initadalah  /sbin/rc.  Skrip ini menjalankan sekumpulan skrip pada direktory  /etc/rc.d/rc0.d/, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan seterusnya.
  • Skrip pada direktory tersebut dieksekusi pada setiap boot state dari oeprasi sampai menjadi operasi yang lengkap.  S krip mulai dengan S yang merupakan skrip startup sedangkan skrip yang dimulai dengan K menandakan skrip shutdown (kill). Angka yang mengikuti huruf tersebut merupakan urutan eksekusi (terendah ke tertinggi) 
Jika Anda menginstall semua  daemons (proses bac kground), Linux akan menjalankan semua , menyebabkan mesin lebih lambar. Kita bisa memulai (start) / menghentikan (stop) daemon secara individual dengan mengubah direktory :

 /etc/rc.d/init.d (Redhat)
dan diikuti perintah pilihan start, stop, status, restar t atau reload, misalnya untuk stop web server :
 cd /etc/rc.d/init.d
httpd stop 
Gunakan perintah ps – aux untuk melihat semua proses pada mesin Anda.

LINUX RUN LEVEL

 Tabel Run Level


1.5. Jenisjenis Action

Contoh isi file /etc/inittab  :
      id:3:initdefault:    
Keterangan :
§ Baris di atas menunjukkan bahwa pada saat dijalankan sistem akan masuk ke run level 3.
      1:2345:respawn:/sbin/getty 9600 tty1      
Keterangan :
§ Kolom pertama menunjukkan bahwa baris ini untuk /dev/tty1
§ Kolom kedua menunjukkan bahwa baris ini diterapkan untuk run level 2,3,4,dan 5.
§ Kolom ketiga berarti bahwa perintah /sbin/getty akan dijalankan lagi apabila berhenti.
§ Kolom terakhir menunjukkan program /sbin/getty akan dijalankan pada virtual console yang pertama.

1.6. Memeriksa runlevel saat ini
Untuk memeriksa runlevel yang saat ini sedang berlaku dapat dilakukan dengan dua cara, yaitu:
1. Menggunakan perintah who

2. Menggunakan perintah runlevel


1.7. Mengganti runlevel
Sintaks:
    init [runlevel]    
Contoh:
1. Menjalankan runlevel 0 atau melakukan proses shutdown
# init 0
2. Menjalankan runlevel 1 atau masuk ke modus single user
# init 1

1.8. Script Inisialisasi
Script yang akan dijalankan sesuai dengan run level. Disimpan di direktori sesuai run level, dibawah
direktori /etc/rc.d/rc[x].d berupa file symbolic link. Script asli disimpan di
/etc/rc.d/init.d.

Catatan:
File yang diawali oleh huruf S (Start) merupakan file untuk menjalankan service tersebut sedang
apabila diawali oleh huruf K (Kill) berarti untuk menghentikan service yang bersangkutan.


Anda bila melakukan perpindahan level init dengan menggunakan  perintah  init dengan runlevel tertentu. Gunakan perintah  ”init#”dimana # adalah satu dari 0, 1, 3, 5, 6. Dapat juga menggunakan perintah telinit.
Skrip untuk run level  yang diberikan dijalankan selama boot dan shutdown. Skrip ditemukan pada direktory /etc/rc.d/rc#.d/ dimana simbol # menandakan run level, misalnya run level ”3” akan menjalankan semua skrip pada direktory /etc/rc.d/rc3.d/yang dimulai dengan huruf ”S” sel ama sistem boot. 

Skrip ini akan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat shutdown semua skrip pada direktory yang dimulai dengan huruf ”K” akan dieksekusi. Sistem ini menyediakan urutan sistem ke state yang berbeda untuk mode produksi dan maintenance.
TIP : Daftar state dan run level dari semua service dimulai oleh ini : chkconfig –list GUI tool : /usr/X11R6/bin/tksysv

Berikut ini adalah perintah-perintah yang terdapat pada init, yaitu:
1. Yg pertama anda harus berada pada posisi root :$ su - , lalu masukkan password root Anda

2. Untuk melihat isi file :# /etc/iniitab

3. Untuk melihat script Run Level : # ls /etc/rc.d/rc0.d (0 pada perintah ini merupakan tingkatan Run Level yang dapat diganti yaitu antara 0-6)




4. Untuk mengganti Run Level : # init [Run Level]

5. Untuk membuat pesan kepada seluruh user yang login :# wall

6. Untuk membuat pesan kepada user yang diinginkan : # write [User]


AKTIVASI SKRIP INIT

Menambah suatu skrip  kedirektory  /etc/rc.d/rc#.d/  baik prefik S atau K, menambah skripke proses boot atau shutdown. Skrip berjalan dengan urutan numerik. S20abc dijalankan sebelum S30xyz. Keberadaan prosedur boot dan shutdown ini merupakan kekuatan sistem operasi UNIX.  Inisialisasi proses dengan urutan tertentu dapat dikoordinasikan  untuk proses dependent.  Shutdown dari proses biasanya dibutuhkan untuk program yang kompleks misalnya database.  Proses individual dapat kemunginan dimonitore, shutdown dan start pada sembarang waktu menggunakan skrip tersebut. Misalnya  /etc/rc.d/rc2.d/ht tpd start .  Mofidikasi start, stop atau status kemungkinan digunakan.

Skrip start / stop /status berada pada direktory  /etc/rc.d/init.d/  adalah suatu link ke direktory sebenarnya. Link tersebut kemungkinan dibuat atau dihapus menggunakan perintah  chkconfi g, misalnya  chkconfig  – del httpd akan menghapus web server dari proses startup dan shutdown. Sebaliknnya chkconfig  – add httpd akan menambahke ke proses startup/shutdown dengan membangkitkan link dari skrip pada /etc/rc.d/init.d/ ke direktory  /etc/rc.d/rc#.d/ yang sebenarnya.  Untuk informasi lebih lanjut gunakan halaman manual LINUX untuk init.

Pada Red Hat 9.0, GUI tool /usr/bin/redhat -config-services dapat membantu untuk mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiap service y ang tersedia. Service dasar meliputi :
Sistem ServiceDeskripsi
anacronRun jobs which were scheduled for execution while computer was
turned off.Catch up with system duties.
arpwatchKeeps track of IP address to MAC address pairings
atdRun schedul ed batch jobs.
autofsautomounts file systems on demand.
crondJob sheduler for periodic tasks
gpmAllows console terminal cut and paste. (Non X- window consoles)
httpsApache web server.
iptablesFirewall rules interface to kernel
keytableLoads se lected keyboard map as set in /etc/sysconfig/keyboard
kudzuNew harware probe/detection during system boot.
lpdNetwork printer services
microcode_ctlUploads microcode to kernel and ultimately to the Intle Pentium
processor.Database services
mysqldshutdown (Do NOT set initdefault to this)
namedDNS name services (Bind)
networkActive network services during system boot.
nfsNetwork file system. Unix file sharing services.
nscdPassword and group lookup services for use with network authentication (NIS, LDAP,...).
ntpdNetwork Time Protocol time synchronization services.
randomRandom number generation tool used for encryprion
rawdevicesEnables raw IO. Useful for Oracle and software which utilizes this
for high speed disk access.
smbSAMBA: MS/Windows PC file s haring services
syslogSystem log file facility.
ypbindunused
ypbind NISfile sharing/authentication infrastructure service.
yppasswdNIS file sharing/authentication infrastructure service.
xfsX- Windows font server.

Service utama yang direkomendasikan adalah  :  anacron, ard, autofs, crond, gpm, iptables, keytable, kudzu, microcode_ctl (Intel32 hardware only), network, random. syslog Graphics Workstation - add:  xfs File Server for PC clients -add: smb Print Server - add:  lpd atau  cups File server Linux/Unix cl ients -add: nfs, netfs, nfslock, portmap, ypbind, yppasswd, ypserv Web Server -add:  httpd, tux, xinetdi, sshd 

SKRIP INIT

Skrip init berada pada direktory  /etc/rc.d/ script -name. Gunakan perintah  chkconfiguntuk membangkitkan soft link ke direktory yang sebenarnya untuk beberapa run level.

#!/bin/sh
#
# Startup script for program
#
# chkconfig: 345 85 15  -This statement tells the chkconfig
command how to add or delete this process to the boot process
# description: Description of program
# processn ame: process- name
# pidfile: /var/run/process- name.pid
# Source function library.  This creates the operating
environment for the process to be started
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo  -n "Starting  process-name: "
daemon  process -name  -Starts only one process of a
given name.
echo
touch /var/lock/subsys/process-name
;;
stop)
echo  -n "Shutting down  process-name : "
killproc  process -name
echo
rm - f /var/loc k/subsys/process-name
rm  - f /var/run/ process -name .pid  -Only if process
generates this file
;;
status)
status process- name
;;
restart)
$0 stop
$0 start
;;
reload)
echo  -n "Reloading process-name: "
killproc  process -name  -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0

Fungsi skrip bash  daemon, killprocdan  status dapat ditemukan dalam skrip /etc/rc.d/functions. Skrip harus dieksekusi untuk menjalankannya ( chmod +x script-name) Misalnya skrip digunakan untuk memulai dan menghentikan proses seperti :
/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/httpd stop
/etc/rc.d/init.d/httpd start 
atau menggunakan p erintah service :
service httpd restart
service httpd stop
service httpd start
Dua baris dalam skrip yang memungkinkan perintah  chkconfigmengontrol skrip untuk proses boot dan shutdown adalah : 
# chkconfig: 345 85 15
# description: Description of program
Bila menambahkan ke proses booting menggunakan p erintah  "chkconfig --add script -name" awal order/priority  akan diset 80 sedangkan  stop/shutdown  diset 15. Proses akan ditambahkan ke runlevel 3, 4, dan 5. Hal ini dapat dilakukan dengan membangkitkan link dari lokasi skrip  (/etc/rc.d/init.d/)  ke direktori run level :/etc/rc.d/rc#.d/.  Nama file dalam direktory run level akan menunjukkan apa yangdigunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).

CHKCONFIG

Perintah chkconfig membangkitkan dan memutuskan link antara direktori /etc/rc.d/init.d/   dan direktori run level  /etc/rc.d/rc [0-6].d/  untuk mengontrol inisialisasi proses boot dan proses shutdown.
chkconfig [--level <levels>] <name> on | off | reset >
chkconfig -- list
chkconfig -- list
chkconfig -- add <name>
chkconfig -- del <name>
chkconfig -- level 0123456 <name> off

Contoh :
chkconfig -- level 345 httpd on 
  • apache diberikan  3, 4  dan 5. 
chkconfig -- add httpd 
  • memulai web server daemon  pada system boot. 
chkconfig -- del sen dmail 
  • Tidak memulai  sendmail daemon  padasystem boot. 
chkconfig -- list ]
  • Daftar semua servis dan level init. 
chkconfig -- list | grep on 
  • Daftar semua service yang dimulai pada sistem boot 
2. Shutdown
Sebelum mesin dimatikan (power off), sebaiknya sistem di shutdown dulu dengan
perintah/sbin/shutdown . Perintah tersebut akan melakukan halhal
berikut :
1. Memberitahukan kepada user yang login bahwa sistem akan dimatikan.
2. Menghentikan seluruh proses yang masih berjalan.
3. Melakukan unmount filesystem.
4. Menyimpan seluruh file yang masih di memori ke harddisk.
Sintaks :
shutdown [pilihan] [waktu] [pesan]

Tidak ada komentar:

Posting Komentar