J'essaie d'écrire un rc.d script pour démarrer le fastcgi-mono-server4 sur FreeBSD lorsque l'ordinateur démarre - afin de le faire fonctionner avec nginx.
Le script fonctionne lorsque je l'exécute en étant connecté au serveur - mais au démarrage, j'obtiens le message suivant :
eval: -applications=192.168.50.133:/:/usr/local/www/nginx: not found
Le script se présente comme suit :
#!/bin/sh
# PROVIDE: monofcgid
# REQUIRE: LOGIN nginx
# KEYWORD: shutdown
. /etc/rc.subr
name="monofcgid"
rcvar="monofcgid_enable"
stop_cmd="${name}_stop"
start_cmd="${name}_start"
start_precmd="${name}_prestart"
start_postcmd="${name}_poststart"
stop_postcmd="${name}_poststop"
command=$(which fastcgi-mono-server4)
apps="192.168.50.133:/:/usr/local/www/nginx"
pidfile="/var/run/${name}.pid"
monofcgid_prestart()
{
if [ -f $pidfile ]; then
echo "monofcgid is already running."
exit 0
fi
}
monofcgid_start()
{
echo "Starting monofcgid."
${command} -applications=${apps} -socket=tcp:127.0.0.1:9000 &
}
monofcgid_poststart()
{
MONOSERVER_PID=$(ps ax | grep mono/4.0/fastcgi-m | grep -v grep | awk '{print $1}')
if [ -f $pidfile ]; then
rm $pidfile
fi
if [ -n $MONOSERVER_PID ]; then
echo $MONOSERVER_PID > $pidfile
fi
}
monofcgid_stop()
{
if [ -f $pidfile ]; then
echo "Stopping monofcgid."
kill $(cat $pidfile)
echo "Stopped monofcgid."
else
echo "monofcgid is not running."
exit 0
fi
}
monofcgid_poststop()
{
rm $pidfile
}
load_rc_config $name
run_rc_command "$1"
Au cas où ce ne serait pas déjà super clair, je suis assez nouveau à la fois sur FreeBSD et sur les scripts, donc je suis en quelque sorte préparé à un petit détail évident que j'ai négligé.
J'aimerais beaucoup savoir exactement pourquoi cela échoue et comment le résoudre, mais aussi si quelqu'un a une meilleure façon d'y parvenir, je suis ouvert à toutes les idées.