Menu toggle

Un court article pour expliquer comment lancer un serveur X dédié à un processus sur un serveur headless. Il suffit d’utiliser la commande xinit disponible dans le package du serveur X : xorg. J’utilise par exemple cette commande pour lancer un service XBMC (un super media-center) sur mon serveur Ubuntu qui ne dispose pas d’interface graphique.

Voici, pour l’exemple, le script de lancement du service :

#! /bin/sh

### BEGIN INIT INFO
# Provides:          xbmc
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of XBMC
# Description:       starts instance of XBMC using start-stop-daemon and xinit
### END INIT INFO

############### EDIT ME ##################


# path to xinit exec
DAEMON=/usr/bin/xinit

# startup args
#DAEMON_OPTS=" /usr/bin/xbmc --standalone -- :0"
DAEMON_OPTS=" /usr/bin/xbmc"

# script name
NAME=xbmc

# app name
DESC=XBMC

# user
RUN_AS=xbmc

# Path of the PID file
PID_FILE=/var/run/xbmc.pid

############### END EDIT ME ##################

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
     echo "Starting $DESC"
     start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
     ;;

  stop)
     echo "Stopping $DESC"
     start-stop-daemon --stop --pidfile $PID_FILE
     ;;

  restart|force-reload)
     echo "Restarting $DESC"
     start-stop-daemon --stop --pidfile $PID_FILE
     sleep 5
     start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
     ;;

  *)
     N=/etc/init.d/$NAME
     echo "Usage: $N {start|stop|restart|force-reload}" >&2
     exit 1
     ;;
esac

exit 0

Une commande utile et simple à utilser qu’il ne faut pas oublier.