Lancer un programme automatiquement

Bonjnour j’ai developpé un programme et j’aimerais qu’il se lance automatiquement au démarrrage de Debian. J’aimerais bien arriver à faire cela en ligne de commande ca je ne possède pas l’interface graphique de Debian.

Le programme se trouve dans le répertoire /home/powerdale/ et se nomme lcd. J’ai réussi à fair un script a partir du fichier /etc/init.d/skeleton et j’arrive à lancer mon programme au démarrage de Debian. Mais mon programme doit pouvoir accèder à des fichier XML qui se trouve dans le même répertoire que mon programme (/home/powerdale/) et il n’y arrive pas. C’est sans doute du au fait que le script n’a pas son repertoire de base dans ce répertoire de mon programme. Je vous laisse mon script pour que vous puissiez voir ce qu’il y a modifier.

Merci d’avance

[code]#! /bin/sh

skeleton Example initscript

This file should be used to construct scripts to be

placed in /etc/init.d.

Author: Miquel van Smoorenburg miquels@cistron.nl.

Ian Murdock imurdock@gnu.ai.mit.edu.

Please remove the “Author” lines above and replace them

with your own name if you copy and modify this script.

Version: @(#)skeleton 2.85-23 28-Jul-2004 miquels@cistron.nl

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="lcd daemon"
NAME=lcd
DAEMON=/home/powerdale/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

Gracefully exit if the package has been removed.

test -x $DAEMON || exit 0

Read config file if it is present.

#if [ -r /etc/default/$NAME ]
#then

. /etc/default/$NAME

#fi

Function that starts the daemon/service.

d_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE
–exec $DAEMON
}

Function that stops the daemon/service.

d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
–name $NAME
}

Function that sends a SIGHUP to the daemon/service.

d_reload() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
–name $NAME --signal 1
}

case “$1” in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo “.”
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo “.”
;;
#reload)
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this an “exit 0”.
#
# echo -n “Reloading $DESC configuration…”
# d_reload
# echo “done.”
#;;
restart|force-reload)
#
# If the “reload” option is implemented, move the “force-reload”
# option to the “reload” entry above. If not, “force-reload” is
# just the same as “restart”.
#
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo “.”
;;
*)
# echo “Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}” >&2
echo “Usage: $SCRIPTNAME {start|stop|restart|force-reload}” >&2
exit 1
;;
esac

exit 0[/code]

Donc pas de souci en rapport avec le titre du post …

Ben fais voir les droits sur ces fichiers et répertoires, et sous quel user tourne ton daemon ? root je présume ?

Normalement, le répertoire courant d’où est lancé le script est /etc/init.d/. Du coup, pour retrouver tes fichiers, il faut soit que tu précises les chemins en absolus ou que utilises la commande cd pour dire à ton script de se déplacer où tu le veux.

Donc si j’ai bien compris pour faire le cd je dois mettre ceci dans mon script pour le start

[code]#

Function that starts the daemon/service.

d_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE
–cd /home/powerdale/
–exec $DAEMON
} [/code]

Enfin je vais tester c’ets le plus rapide :wink: