Script de reboot puis lancement de programme
Bonjour
Excuse moi de vous déranger mais j'aimerais savoir une chose.
En effet j'ai un serveur sous RED HAT qui arrêt pas de merder et il plante tout le temps et j'aimerais pouvoir ecrire un script qui:
1--Reboote la machine (pas de problème je pourrais utiliser shutdown -r)
2--Ensuite connecte directement un utilisateur grace a son login et son pass.
(partie difficile pour moi)
3--Exécute ensuite un autre script de lancement de la base oracle (second script qui fonctionne ).
Donc en resumé je veux un script du genre:
Code:
1 2 3 4 5 6 7 8
|
shutdown -r
"ligne de commande pour autoconnecter l'utilisateur oracle/oracle"
cd /logiciels/uapp/oracle/bin
lsnrctl start
emctl start dbconsole |
reboot et redémarrage d'Oracle
Salut foxrol
Je me permet une remarque préliminaire : ta machine ne devrait pas planter comme ça. Tu dois de toutes façons corriger ce problème. Quelques pistes :
regarde le fichier /var/log/messages et surtout les derniers messages avant le reboot ça peut te donner des idées.
Recharche si un fichier core a été généré. Tu devrais autoriser les core dumps et les générer dans un répertoire du style /tmp/coredumps. Si ça te dit je te retrouverai la syntaxe pour définir le nom des fichier core .
Maintenant on va traiter ta question:
Ton script avec la commande reboot -r se termine automatiquement du fait de la commande shutdown. La suite devra être lancée d'une autre manière.
Soit tu fais lancer ton script par INIT grâce à une commande chkconfig. Dans ce cas, si ta machine tourne en run level 3 ou 5 tu aura à créer un script oracle qui doit accepter un paramètre dont la valeur est start | stop | status | restart et qui traite le démarrage.
Ce script est à installer dans /etc/init.d - tu peux regarder dans init.d tu n'y trouveras que des scripts de lancement tu peux regarder "network" par exemple et en reprendre la structure.
La commande chkconfig (voir le man sur die.net) te créera les commandes de démarrages et d'arrêt automatique dans les répertoires rc3 et rc5.d
Soit tu le place dans le fichier rc.local. Probablement plus simple pour toi .
Pour te logger sous un user spécifique (on supposera que ce user s'appelle oracle) c'est très simple:
le script que tu lances (lance_oracle) ne contient que :
su - oracle -c /home/oracle/start_oracle
Voir aussi le man de la commande su (attention le - isolé indique que tu exécutes le .profile du user, si tu ne le mets pas tu restes avec tes variables d'environnement)
Dans le script start_oracle tu places toutes les commandes qui doivent s'exécuter sous le user oracle.
Ton premier script s'il est lancé par rc.local sera exécuté sous root et tu n'aura même pas besoin du mdp d'oracle.
Ceci correspond plus particulièrement à la distribution Redhat.
Voili Voilou
Phildur