Pages : 1
#1 Le 11/06/2009, à 17:00
- NaxiSoft
Scripts shell... vos avis ?
Bonjour,
Voilà. Je ne savais pas trop où poster alors voilà !
J'ai fais mon premier script shell Il permet de lancer un serveur UrT au lancement de la machine (sur un serveur dédié chez OVH). Bon tout marche ! Il se lance au lancement et tout et tout. Mais voilà je me posais quelques questions. Déjà voilà le script :
#!/bin/sh
do_start(){
su - urt -c /home/urt/urtserv/ioUrTded.x86_64 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg
if [ "$PIPESTATUS" != "0" ]; then
{
su - urt -c echo "--- ERREUR --- : Le server n'a pas pu se lancer !" >> /home/urt/urtserv/server.log
}
fi
}
do_start
exit 0
Voilà alors.
- Est-ce que mon script déjà est sûr ? Pas de problème de droits ? Pas de failles de sécurité ?
- Ensuite, est-ce qu'il est optimisé ? En gros, est-ce qu'on peut faire plus court, faire bouffer moins de ressources au CPU, RAM, etc... ?
- Est-il possible de savoir si le serveur est lancé ? Histoire qu'il le lance pas deux fois !
- Et enfin pour terminer. Comment faire pour arrêter le programme ou le relancer ? (au niveau de la commande pour lancer le server. Pour quand on fait /etc/init.d/sript reload je sais comment faire... mais comment faire pour que le script exécute le reload.)
Voilà Merci à tous !
Dernière modification par NaxiSoft (Le 11/06/2009, à 17:15)
Hors ligne
#2 Le 12/06/2009, à 12:57
- BorX
Re : Scripts shell... vos avis ?
Bah, grosso modo, je vois pas trop quoi dire sur ton script... Il est court, et consiste surtout en une grosse commande que je ne connais pas.
Après, je conseillerais quand même d'utiliser 'sudo' plutôt que 'su', car plus facile à paramétrer.
Pour l'optimisation, que peut-on optimiser si ce n'est cette grosse ligne de commande ?
Utiliser '$?' plutôt que '$PIPESTATUS', mais ça doit pas changer grand chose...
Pour le reste (status, stop, reload, restart, ...), je te conseille de t'inspirer des autres scripts présents dans /etc/init.d
Donc, commencer par avoir une structure telle que :
#!/bin/sh
. /lib/lsb/init-functions
do_start(){
su - urt -c /home/urt/urtserv/ioUrTded.x86_64 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg
return $?
}
case $1 in
start)
log_daemon_msg "Lancement du serveur" "UrT"
do_start
log_end_msg $?
;;
stop)
log_daemon_msg "Arrêt du serveur" "UrT"
killall le_nom_de_tes_process_UrT
log_end_msg $?
;;
restart)
$0 stop
$0 start
;;
*)
log_success_msg "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
Dernière modification par BorX (Le 12/06/2009, à 12:59)
Hors ligne
#3 Le 12/06/2009, à 13:01
- BorX
Re : Scripts shell... vos avis ?
Et sinon, je pense que tu devrais plutôt poster là : Développement - Programmation
Hors ligne
#4 Le 12/06/2009, à 13:02
- NaxiSoft
Re : Scripts shell... vos avis ?
D'accord ! Merci beaucoup BorX !
Hors ligne
Pages : 1