Astuce: ghost blog avec un utilisateur particulier
Bonjour à tous,
Un petit billet rapide.
J'utilise Ghost blog ici même et je souhaitais qu'il ne soit pas lancé par root et pouvoir l'arrêter, le démarrer, le redémarrer, et vérifier le status facilement.
Donc j'ai réalisé un script à placer dans /etc/init.d/ :
#!/usr/bin/env sh
# Launch Ghost blog
order=${1}
work_dir="/var/www/blog/"
www_user="www-data"
www_shell="/bin/bash"
# Functions
get_pid () {
ghost_pid=`pgrep nodejs`
return ${ghost_pid}
}
ghost_stop () {
get_pid
echo "Ghost blog stopping...."
for pid in ${ghost_pid}; do
kill ${pid}
done
sleep 5
get_pid
if [ -z "${ghost_pid}" ]; then
echo "Ghost blog is stop!"
else
echo "Ghost blog is not stop, check!"
echo ${ghost_pid}
fi
}
ghost_status () {
get_pid
if [ ! -z "${ghost_pid}" ]; then
echo "Ghost blog is up!"
echo ${ghost_pid}
else
echo "Ghost blog is down!"
fi
}
ghost_start () {
echo "Ghost blog starting...."
cd ${work_dir}
su -c "NODE_ENV=production forever start index.js" -s ${www_shell} ${www_user}
sleep 5
ghost_status
}
ghost_restart () {
ghost_stop
ghost_start
}
case ${order} in
"start") ghost_start
;;
"restart") ghost_restart
;;
"stop") ghost_stop
;;
"status") ghost_status
;;
*)
echo "`basename ${0}`:usage: start|restart|stop|status"
exit 1 # Command to come out of the program with status 1
;;
esac
exit 0
Cela permet de lancer le processeur nodejs via forever avec l'utilisateur www-data (ici sous Debian 8).
Il reste à le mettre le script par défaut pour que le blog démarre en même temps que la vm:
update-rc.d ghost defaults
Have a nice day.