Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 14/10/2012, à 05: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

Haut de page ↑