PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

PostBlue : Haste : Init Script pour une distribution Debian

lundi 18 mars 2013 à 22:10

Depuis que j’ai déployé un node d’Hastebin sur mon VPS, j’ai été confronté à un souci majeur : je ne parvenais pas à faire en sorte que le service soit lancé au démarrage de ma machine. À la rédaction de mon billet de présentation, j’avais utilisé forever puis nohup pour garder un processus d’haste-server en arrière-plan, solutions qui fonctionnaient bien, mais ne me satisfaisaient pas : mon serveur n’était pas rebootproof, c’est-à-dire que si d’aventure il était redémarré, il fallait que je m’y reconnecte pour lancer haste-server ; une épine au pied qu’il me tardait d’extraire.

haste-server

Après quelques recherches, j’ai trouvé ce script permettant d’être géré tel un service (voir la documentation Debian) dans un souci de mise en production et, qu’il suffit de copier dans /etc/init.d/hastebin. J’y ai apporté quelques modifications comme l’attente du démarrage de redis, ou une modifications des chemins d’accès de l’exécutable de Node.js :

#!/bin/bash
 
### BEGIN INIT INFO
# Provides:          hastebin
# Required-Start:    $local_fs $remote_fs $network $syslog $redis_server
# Required-Stop:     $local_fs $remote_fs $network $syslog $redis_server
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts hastebin
# Description:       starts hastebin
### END INIT INFO
 
# modify if you need
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/opt/node/bin
# path to your node.js server/app
DAEMON_ARGS="/home/hastebin/haste-server/server.js"
# whatever fancy description you like
DESC="node.js pastebin server"
# USER who OWNS the daemon process (no matter whoever runs the init script)
NODEUSER=hastebin:hastebin
# in case the init script is run by non-root user, you need to
LOCAL_VAR_RUN=/var/run
# name of the node.js executable
NAME=node
# this SHOULD POINT TO where your node executable is
DAEMON=/opt/node/bin/$NAME

Le reste du script reste inchangé. Il est évident qu’il sera nécessaire de modifier les chemins en fonction de l’installation faite du programme et de Node.js, la mienne pointant vers /opt/node/bin/node parce que j’utilise le script d’installation facile de Node.js et de npm par Nicolargo, et vers /home/hastebin/haste-server parce que j’y ai clôné la source (elle peut être installée où bon vous plaît). Si par contre vous avez installé Node.js depuis les répertoires de Debian Sid, vous devrez plutôt pointer vers /usr/bin/nodejs (ou /usr/bin/node).

Ne reste plus qu’à activer le lancement du script lors du démarrage de la machine :

# update-rc.d hastebin defaults

flattr this!

Gravatar de PostBlue
Original post of PostBlue.Votez pour ce billet sur Planet Libre.