Table of Contents

Linux: Script Auto Restart Service Otomatis

{(rater>id=membuat-script-auto-restart|name=membuat-script-auto-restart|type=rate)}

Bisa jadi suatu saat service apache, exim, php-fpm atau lainya tiba-tiba mati. Bisa jadi anda lupa belum membuat service auto start atau memang tiba-tiba mati sendiri.

Maka itu berikut ini adalah script yang bisa membantu anda melakukan auto start service tertentu yang mati.

Script ini telah kami uji di Centos 6 dan bisa berjalan dengan baik

Tahapan Membuat Script Auto Restart Service

Pertama buatlah folder tertentu misal script

mkdir /script

kemudian buat file autorestart.sh

nano /script/autorestart.sh

dan apabila anda belum menginstall nano sebelumnya, anda bisa menginstall nano baca Cara install Nano

Anda akan dihadapkan pada halaman blank atau kosong kemudian isi dengan script ini

#!/bin/bash

#store the pid of this script into a temp file
echo $$ > /tmp/autorestart_pid

declare -a service_arr

#Load this array with the service names (maybe from file)
service_arr=("nginx" "php-fpm" "memcached")

n=${#service_arr[*]}

    for ((i=0; i<n; i++))
      do
        service ${service_arr[i]} status &> /dev/null
        if [ $? -ne 0 ]
          then
            service ${service_arr[i]} start &> /dev/null

            if [ $? -ne 0 ]
              then
                echo "Failed to start ${service_arr[i]}"
            fi
        fi
      done
exit;

simpan dengan menekan CTRL + X

setelah anda simpan ubah permission agar bisa dieksekusi

chmod 755 /script/autorestart.sh

terakhir, test jalankan script dengan cara

sh /script/autorestart.sh

atau bisa juga langsung dengan

/script/autorestart.sh

Cara Penggunaan

Perhatikan pada baris service_arr=(“nginx” “php-fpm” “memcached”) pada baris tersebut anda bisa memasukkan service yang ingin anda lakukan auto restart otomatis apabila service tersebut mati.

Studi Kasus

Saya mematikan service php-fpm dan kemudian menjalankan autorestart.sh perhatikan ini

[root@us1 ~]# /etc/init.d/php-fpm stop
Stopping php-fpm:                                          [  OK  ]
[root@us1 ~]# /etc/init.d/php-fpm status
php-fpm is stopped
[root@us1 ~]# sh /script/autorestart.sh
[root@us1 ~]# /etc/init.d/php-fpm status
php-fpm (pid  8703) is running...

Anda bisa memperhatikan diatas, service php-fpm kami matikan kemudian menjalankan autostart.sh dan service kembali berjalan.

Penjadwalan Cron

Apabila anda ingin menjalankan script ini secara otomatis maka anda bisa menjadwalkan melalui cron.

nano /etc/crontab

isi dengan

*/5 * * * * root /script/autorestart.sh > /dev/null

Contoh diatas memberitahukan ke cron untuk menjalankan script setiap 5 menit

Pertanyaan?

Apabila anda memiliki pertanyaan bisa langsung kirim email ke tanya(at)pusathosting.com

Sumber

Script diatas telah kami sedikit modifikasi dari sumbernya namun fungsi tetap berjalan sesuai script aslinya.