[Ldl62] [LONG]Lancement de script au démarrage
David White
dwhite@l...
Mar 1 Aou 17:45:39 CEST 2006
Hello tout le monde,
J'ai un petit soucis de variables d'environement ou de droits au
lancement d'un script au démarrage d'une machine:
Sur une Red Hat j'ai un script prévu pour lancer mon usine à gaz Oracle
(oui, pléonasme, je sais...) celui-ci est dans /etc/init.d/ et il en
appelle 2 autres dans /home/user ...
Si je me mets dans un shell en root et que je le lance:
/etc/init.d/oracle_ocs start ça démarre bien comme il faut
Si je l'ajoute dans le démarrage au run level 3 (ou 5 c est pareil) avec
chkconfig --add oracle_ocs
chkconfig --level 3 oracle_ocs on
Et que l'on reboot , ça ne marche plus:
un ps fax montre bien la hiérarchie des scripts lancés:
0 /bin/bash /etc/rc.d/rc 3
2420 ? S 0:00 \_ initlog -q -c /etc/rc3.d/S99oracle_ocs start
2421 ? S 0:00 \_ /bin/bash /etc/rc3.d/S99oracle_ocs start
2666 ? S 0:00 \_ su - oracle -c
/home/oracle/scripts/start_infra.sh >
/home/oracle/scripts/ocsinfra_start.log
Les premières instructions du script oracle_ocs sont bien exécutées,
mais le contenu du script start_infra.sh n'est pas lancé
Il n'y aurait pas une histoire de variables d'env non renseignées lors
du démarrage??
David
--
Voici le début de oracle_ocs:
---------------------------------------------------
# Source ENV
[ -e /etc/oracle_OCS_env.sh ] || exit 1
. /etc/oracle_OCS_env.sh
RETVAL=0
touch $OCS_SCRIPTS_DIR/silentstart
start() {
touch $OCS_SCRIPTS_DIR/ocsapps_start.log
$OCS_SCRIPTS_DIR/ocsinfra_start.log
chmod 777 $OCS_SCRIPTS_DIR/ocs*
#Start OCS X server
ps -ef | grep "$XWIN_CMD" | grep -v grep || (echo "Starting X
server: "; . $OCS_SCRIPTS_DIR/startX.sh 2>/dev/null)
#Start the infrastructure server
echo -n $"Starting The OCS infrastructure: "
echo
su - $OCS_OWNER -c "$OCS_SCRIPTS_DIR/start_infra.sh >
$OCS_SCRIPTS_DIR/ocsinfra_start.log"
==============================================
Et le début de start_infra.sh:
#!/bin/bash
[ -e /etc/oracle_OCS_env.sh ] || exit 1
. /etc/oracle_OCS_env.sh
[ -e $OCS_SCRIPTS_DIR/env_infra.sh ] || exit 1
. $OCS_SCRIPTS_DIR/env_infra.sh
if (test `whoami` != $OCS_OWNER)
then
echo "Vous devez etre $OCS_OWNER ou $OCS_INFRA_USER pour lancer ce script"
exit
fi
ps -ef | grep "$XWIN_CMD" | grep -v grep || (echo "Entrer le mot de
passe root afin de demarrer le serveur X" ; su - root -c
"$OCS_SCRIPTS_DIR/startX.sh 2>/dev/null")
echo "Demarrage de la base"
sqlplus "/ as sysdba" <<EOF
startup
exit
EOF
echo "Demarrage du Listener de base"
lsnrctl start
Plus d'informations sur la liste de diffusion Ldl62