Cara Cek dan Restart Service Secara Otomatis di VPS
Last updated onCategory : Server dan security
Dalam beberapa kasus tertentu, tak jarang kita menemui tiba-tiba salah satu service (misal: apache, nginx, mysql dan lain-lain) tiba-tiba down atau berhenti karena beberapa hal sehingga menyebabkan aplikasi atau website kita down dan tidak bisa diakses.
Banyak hal yang menyebabkan mengapa service tersebut menjadi down di antaranya adalah karena adanya traffic yang besar atau overload di server. Tentu saja, cara terbaik untuk menyelesaikan hal ini adalah dengan cara melakukan debugging dan solve root issuenya. Namun, karena belum menemukan root issue atau belum mengetahui solusinya, maka tak jarang kita harus mengaktifkan service-service tersebut secara manual.
Cara Mengaktifkan Service Yang Down Manual
Mengaktifkan service yang down sangatlah sederhanya yaitu dengan cara melakukan start atau restart pada service tersebut. Sebagai contoh, jika kita ingin mengaktifkan service apache pada CentOS 7, maka kita bisa menjalankan perintah:
systemctl start httpd
atau bisa juga dengan
systemctl start apache2
Untuk mysql, kita juga bisa mengaktifkannya dengan cara menjalankan perintah:
systemctl start mysql
Dan seterusnya. Namun, cara tersebut harus kita lakukan dengan login ke server dan menjalankannya secara manual sehingga tak jarang akan menjadi masalah tersendiri jika kita tidak sedang berada di depan laptop atau komputer kita.
Mengaktifkan Service Yang Down Secara Otomatis
Untuk mengaktifkan service secara otomatis, kita dapat menggunakan bantuan cron dengan cara mengecek status service tersebut setiap menit atau periode tertentu sesuai kebutuhan kita dan kemudian mengaktifkan service tersebut jika down.
Untuk melakukannya, jalankan perintah berikut untuk membuat cron baru:
crontab -e
Selanjutnya, tambahkan baris perintah berikut:
* * * * * systemctl status httpd > /dev/null || systemctl start httpd
Contoh di atas maksudnya adalah kita akan mengecek setiap menit status dari service apache (httpd) dan jika down, maka sistem akan mengaktifkan service httpd atau apache tersebut.
Jika ingin mengubahnya menjadi lima (5) menit sekali, maka kita dapat mengubahnya menjadi:
*/5 * * * * systemctl status httpd > /dev/null || systemctl start httpd
Perintah || (OR) maksudnya adalah jika status httpd down atau failed atau nilainya di atas 0, maka perintah selanjutnya yaitu start httpd akan dilanjutkan.
Perintah ini berkebalikan dengan && yang hanya akan mengeksekusi perintah selanjutnya jika perintah yang pertama nilainya di atas 0 atau dalam kasus ini berhasil di eksekusi.
Mudah bukan, dengan begitu harapannya kita tidak perlu panik jika tiba-tiba mysql atau apache kita down secara reguler.
Semoga bermanfaat.