Haste : Init Script pour une distribution Debian
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.
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 : vous pouvez retrouver mon fichier modifié sur ma propre instance d'haste-server
.
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/user/haste-server
parce que j'y ai clôné la source pour l'exemple (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
si vous installez le paquet nodejs-legacy
, qui comprend un lien symbolique entre les deux).
Ne reste plus qu'à activer le lancement du script lors du démarrage de la machine, après l'avoir rendu exécutable :
# chmod +x /etc/init.d/hastebin
# update-rc.d hastebin defaults