Latar Belakang. Setiap kali server saya “reboot“, FreeRADIUS tidak mau hidup (“up”). Ketika saya periksa di log, ternyata Fedora menjalakan FreeRADIUS sebelum MySQL dijalankan (FreeRADIUS melakukan verifikasi ke database MySQL dan tidak dapat menemukan database lalu akhirnya mati).
Sistem Fedora yang baru, menggunakan systemd (dimana semua service dijalankan secara paralel pada waktu boot?). Jujur, saya agak kesulitan beradaptasi dengan sistem yang baru, karena sudah agak lama saya tidak mengutak-atik Fedora (hanya menggunakan Ubuntu Desktop. Itu pun sebatas “instal-pakai-lupakan”… lol)
Setelah mencari dan membaca tutorial yang bertebaran di Internet, saya belum juga menemukan solusinya. Akhirnya saya mencoba untuk membuat prosedur sederhana untuk mengatasi masalah ini.
1. Unduh FreeRADIUS source file (untuk mengambil init script)
Berkas dapat diunduh disini: http://freeradius.org/download.html
Ekstrak berkas dengan perintah:
a. bila, anda mengunduh berkas dengan ekstensi “.tar.gz”
tar zxvf freeradius-server-2.1.12.tar.gz
b. ekstensi “.tar.bz2”
tar jxvf freeradius-server-2.1.12.tar.bz2
Salin (“Copy”) ke direktori init
cp freeradius-server-2.1.12/redhat/freeradius-radiusd-init /etc/init.d/radiusd
Registrasikan radiusd ke dalam service.
chkconfig radiusd on
2. Script Bantuan
Script bantuan ini akan mengecek apakah MySQL dan FreeRADIUS hidup atau mati. Buat berkas baru dengan perintah:
vi /usr/local/bin/check-freeradius.sh
lalu, tulis/isikan dengan:
#!/bin/bash
chk_radiusd='systemctl status radiusd.service'
chk_mysql='systemctl status mysqld.service'
RADIUSD=`$chk_radiusd | grep -c running`
if [ "$RADIUSD" -eq 0 ]; then
MYSQLD=`$chk_mysql | grep -c running`
if [ "$MYSQLD" -eq 0 ]; then
echo "Turning On MySQLD..."
service mysqld start
echo "Turning On FreeRADIUS..."
service radiusd start
else
echo "Turning On FreeRADIUS..."
service radiusd start
fi
fi
Simpan berkas dengan mengetikkan:
:wq
CHMOD script bantuan agar “executable“:
chmod 755 /usr/local/bin/check-freeradius.sh
Secara default, berkas /etc/rc.d/rc.local tidak disertakan oleh Fedora. Jadi, kita harus membuatnya secara manual.
vi /etc/rc.d/rc.local
Isikan baris berikut pada rc.local:
#!/bin/bash /usr/local/bin/check-freeradius.sh
Simpan berkas dengan perintah “:wq“. Lalu, CHMOD /etc/rc.d/rc.local ke 755.
Selesai. Silahkan coba “reboot” server.
Catatan:
Mungkin ini bukan solusi yang tepat. Sekiranya ada yang mengetahui solusi yang lebih “elegan”, diharapkan bisa berbagi ilmunya. Terima kasih :)