Membuat script untuk service di Linux

Berikut adalah sebuah cara membuat sebuah skrip yang digunakan dalam memanggil/mematikan layanan di Linux.

Yang diperlukan adalah mengedit
SERVICENAME
SERVICEFILE
SERVICEPID
SERVICECONFIG

Jangan sampai ada jeda antara variabel tersebut dengan = dan dengan isi variabel, contoh:
SERVICENAME=nama_layanan
dan seterusnya.

Simpan skrip ini di lokasi /etc/rc.d/ untuk Slackware, /etc/init.d/ untuk distro linux pada umumnya. Serta, jangan lupa merubah permisinya:
chmod 0755 /etc/rc.d/rc.nama_skrip

Berikut skrip-nya yang siap di-copas!
#!/bin/bash
#--- Generic Service Start/Stop Script
#--- Anton Rahmadi @27Jan2009
#--- v 0.1a

#--- Configuration
SERVICENAME={service_name}
SERVICEFILE={/path/to/binary/service_file}
SERVICEPID=/var/run/{service_name}.pid
SERVICECONFIG="{additional_options} --pidfile=$SERVICEPID"

#--- Optional configuration
SLEEPVALUE=2 #put higher number for slower CPU

#--- Non configurable
#--- classes
checkservice() {
if [ ! -f "$SERVICEFILE" ]; then
echo "$SERVICEFILE: NOT FOUND"
exit 0
fi
}
startservice() {
if [ -e "$SERVICEPID" ]; then
echo "$SERVICENAME: ALREADY STARTED"
exit 0
else
$SERVICEFILE $SERVICECONFIG
fi
}
stopservice() {
if [ -e "$SERVICEPID" ]; then
kill `cat $SERVICEPID`
rm -f $SERVICEPID
else
echo "$SERVICENAME: ALREADY STOP"
exit 0
fi
}
checkstatus() {
if [ -e "$SERVICEPID" ]; then
echo "$SERVICENAME: STARTED"
else
echo "$SERVICENAME: STOP"
fi
}

#--- program body
checkservice
case "$1" in
'start')
startservice
sleep $SLEEPVALUE
checkstatus
;;
'stop')
stopservice
checkstatus
;;
'restart')
$0 stop
$0 start
;;
'status')
checkstatus
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac

Comments

Popular posts from this blog

Merakit Destilator Bioetanol Sederhana (1)

DHT11 incubator with I2C LCD (part 1)

LM35 Incubator with LCD 16x2 on Arduino