init.d et script perso. lors d'un reboot

init.d et script perso. lors d'un reboot - Codes et scripts - Linux et OS Alternatifs

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
 

Reply

Marsh Posté le 07-06-2009 à 19:09:04   

Reply

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...)

Reply

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


Message édité par ipnoz le 08-06-2009 à 01:36:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed