Pages : 1
#1 Le 14/10/2012, à 06:53
- the angel
Daemon qui ne se lance pas
Bonjour,
Je voudrai créer un daemon pour lancer automatiquement FreeMi au démarrage de ma machine.
J'ai testé le daemon manuellement et il fonctionne :
root@sherlock:/home/ely# /etc/init.d/freemi start
* Starting Launch FreeMi server freemi [ OK ]
root@sherlock:/home/ely# /etc/init.d/freemi restart
* Restarting Launch FreeMi server freemi
* Stopping Launch FreeMi server freemi
* Starting Launch FreeMi server freemi [ OK ]
root@sherlock:/home/ely# /etc/init.d/freemi stop
* Stopping Launch FreeMi server freemi [ OK ]
Le problème c'est qu'il ne se lance pas automatiquement.
Voici le code du script /etc/init.d/freemi :
#!/bin/sh
### BEGIN INIT INFO
# Provides: freemi
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start FreeMi server
# Description: Start Freemi server
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Launch FreeMi server"
NAME=freemi
PIDFILE=/var/run/$NAME.pid
DAEMON=/usr/bin/mono
DAEMON_ARGS="/opt/freemi/FreeMi.exe"
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
# To print messages
VERBOSE=yes
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --background --make-pidfile --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1
start-stop-daemon --start --quiet --background --make-pidfile --pidfile "$PIDFILE" --exec "$DAEMON" -- "$DAEMON_ARGS" || return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$PIDFILE"
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --pidfile "$PIDFILE"
[ "$?" = 2 ] && return 2
# Delete the pidfile
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile "$PIDFILE"
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
[ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" "$NAME"
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
:
J'ai ajouté le script aux différents run-level :
$ sudo update-rc.d freemi defaults
Merci d'avance pour votre aide.
Hors ligne