Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 big_smile 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à big_smile Merci à tous ! smile

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