Contoh init script untuk Nginx
Ternyata saya sudah lupa – lupa ingat setting init script untuk Nginx. Baru saya sadari saat menginstall web server untuk Nginx 1.9.6
dan dilengkapi ngx_pagespeed 1.9.32.10-beta
dari GitHub ternyata tidak semudah itu dihidupkan bersamaan saat booting Linux. Haha. 😀 Akhirnya setelah beberapa kali membuat dan mengedit ketemu yang pas.
Membuat init script secara manual perlu dilakukan karena saya menginstall Nginx dari source code, jadi tidak otomatis dibuatkan seperti dari repository.
Ini saya menggunakan CentOS 6.7 dan selama distro Linux yang anda gunakan masih memakai SysInitV maka masih bisa diterapkan, dan pertama kita perlu membuat filenya:
nano /etc/init.d/nginx
Kemudian silahkan copy-paste kode dibawah:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
Simpan dan keluar dari editor nano. Mungkin yang peru anda perhatikan ada di bagian:
nginx="/usr/local/nginx/sbin/nginx"
– Ini menunjukkan lokasi program nginx, ganti kalau di server anda bukan disini.-
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
– Sedangkan ini file konfigurasi nginx, ubah ke lokasi yang sesuai kalau berbeda.
Kemudian lanjutkan dengan:
chmod +x /etc/init.d/nginx
chmod 0755 /etc/init.d/nginx
chown root:root /etc/init.d/nginx
chkconfig nginx on
Setelah itu silahkan reboot dan cek apakah proses nginx sudah ikut dijalankan, lewat top
juga bisa.
Oh ya, nanti anda tidak perlu melakukan ini untuk menjalankan nginx:
/usr/local/nginx/sbin/nginx start
Anda bisa langsung memanfaatkan perintah:
service nginx start
service nginx restart
service nginx reload
Selesai dan semoga bermanfaat. 🙂