init.d et script perso. lors d'un reboot - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 08-06-2009 à 00:47:12
rc6 ? rc0? présent
ln -s ne marche pas je crois...
update-rc.d?
le script ne contient pas les info en tête (must start, default rc),
édite un script init.d pour voir les infos nécessaires (je parle d'une debian...)
Marsh Posté le 08-06-2009 à 01:36:06
rc0 et rc6 present avec un K que j'ai produis avec update-rc.d .
Je verais demain pour les entetes mais j'ai jamais vu ca dans un script init.d .
merci
edit: je suis sous debian
Marsh Posté le 07-06-2009 à 19:09:04
Bonjour, j'ai un petit probleme avec init.
J'ai ecris un script pour start/stop un serveur q3. Il marche bien dans le sens ou quand je fais un /etc/init.d/q3-server start/stop/restart il fait ce qu'on attends de lui.
#!/bin/sh
name="q3-server1"
BASEPATH="/fichiers/quake3-server"
Q3DED="$BASEPATH/q3ded-1.32b"
ip="192.168.1.100"
port="27960"
USER="q3ded"
SUDO="sudo -u $USER"
CONFIG="$name.cfg"
PID="/var/run/q3ded/$name.pid"
SCREEN="screen -A -m -d -S"
FS_GAME="+set fs_game osp"
DEDICATED="+set dedicated 1"
HUNKMEGS="+set com_hunkMegs 32"
function startq3ded()
{
echo running $name server on $ip:$port
$SUDO $SCREEN $name $Q3DED $FS_GAME +set fs_basepath $BASEPATH $DEDICATED $HUNKMEGS +set net_ip $ip +set net_port $port +exec $CONFIG
$SUDO screen -list | grep $name | grep -v Dead | awk '{print $1}' | sed s/.$name//g > $PID
$SUDO screen -wipe > /dev/null
sleep 1
$SUDO screen -list | grep $name
}
case "$1" in
start)
if [ -e $PID ]; then
echo "$PID existe deja ... Le serveur est-il en cours d'execution ?";
if [ -d /proc/`cat $PID` ]; then sleep 1 && echo "" && echo "$name a l'air d'etre en cours d'execution , exit"
exit 1
else sleep 1 && echo "" && echo "On dirait que le process `cat $PID` n'existe pas , démarrage du serveur quake 3"
rm -rf $PID
startq3ded
fi
else startq3ded
fi
;;
stop)
if [ -e $PID ]; then
echo "Arret du serveur $name"
kill `cat $PID`
rm -rf $PID
sleep 3
else
echo "$PID n'existe pas, le serveur est-il démaré ? EXIT"
exit 7
fi
;;
restart)
$0 stop && sleep 2 && $0 start || exit 1
;;
status)
$SUDO screen -list | grep $name
if [ -e $PID ]; then
echo "$name est en cours d'execution"
exit 0
else
echo "$name ne fonctionne pas"
exit 3
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit 0
Mais lors du reboot de la machine, le serveur q3 n'est pas arrété propement car le PID n'est pas effacé, et au démarage il n'est pas lancé non plus et je ne comprends pas pourquoi. Pourtant les liens symboliques sont correct dans /etc/rc*.d .
C'est comme si au boot et au halt , init ne fait pas de /etc/init.d/q3-server start/stop