node.js

Suite à mon article sur le Développement web avec node.js, je me suis intéressé à la mise en production de ce formidable et performant framework javascript, pour réaliser des servelets ou applications webs.

Tout d'abord il faut se rappeler que node.js, est un framework javascript, qui va permettre de réaliser des serveurs d'applications réseaux, qui écoutent sur un port tcp. Pour utiliser un script node.js en production, il faut qu'il démarre automatiquement comme un daemon.

Pour un serveur de Linux de type debian, il faut procéder ainsi :

  • crée le script nodejs qui suit
  • le copier dans /etc/init.d/
  • chmod 744 /etc/init.d/nodejs
  • update-rc.d nodejs defaults
  • placer le fichier test.js dans le répertoire /var/www/node.js/

#! /bin/sh

# Description: Startup script for node.js webapp on Debian. 
# Place in /etc/init.d/ and chmod 744 nodejs
# run 'update-rc.d nodejs defaults' 
# or use the appropriate command on your distro.
#
# Author:    Vincent RABAH

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=test.js
DESC="nodejs daemon $NAME" 
DAEMON=/var/www/node.js/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
  start)
  echo -n "Starting $DESC: $NAME"
  start-stop-daemon -S -q --oknodo -g www-data -u www-data -b -x $DAEMON 
  echo "."
  ;;
  stop)
  echo -n "Stopping $DESC: $NAME"
  start-stop-daemon --oknodo -K -q -R 30 -n $NAME
  echo "."
  ;;
  restart|force-reload)
  echo "Restarting $DESC: $NAME"
  start-stop-daemon --oknodo -K -q -R 30 -n $NAME
  start-stop-daemon -S -q --oknodo -g www-data -u www-data -b -x $DAEMON 
  echo "."
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}" >&2
  exit 1
  ;;
esac

A présent, le script test.js qui utilise le framework node.js sera démarré automatiquement à chaque redémarrage du serveur.