Mise en situation:
j'ai une application SelectServer, qui est un serveur futur pour un jeu en cours de developement. Il est presque parfait (à part qu'il est encore peu garni en fonctionnalitées) mais, afin de le garder aussi performant que possible, il n'interragis en aucune façon avec le systeme.
Donc, j'ai pensé à plusieurs solutions possibles, mais, celle qui m'est apparu comme étant la meilleure est de me créer un petit programme à côté du serveur, afin de le contrôler.
Le contrôle s'effectue via un socket, et, afin de différentier les messages contenant une commande au serveur des banales transmissions avec lesquelles le serveur doit jouer, tous les messages qui sont lancés par srvadmn dans le socket portent tous le flag MSG_OOB (Message Out_Of_Band: Message Hors-fréquence/prioritaire).
Les deux programmes sont écrits en C.
Les sockets sont du type TCP/IP.
Aucun module réseau n'est utilisé. Tout sort des fichiers sources sortant directement du /usr/include.
Le coeur du problème:
Le programme srvadmn doit avoir plusieurs fonctionnalités, du genre, mais non exclusivement:
-kill
-update
-reboot
-...
Donc, j'ai pensé faire un programme qui se lance en console.
Et, comme tout bon programme qui se lance en console, il a des arguments a spécifier au moment de l'invocation.
Code : Bash1 | $ srvadmn --action_désirée
|
Et, selon la valeur associée a --action_désirée, le programme effectueras une tâche plutôt qu'une autre...
Ma question est donc:
Comment est-ce que je peux récupérer un/des argument/s lors d'une invocation dans BASH?
Carboneater,
Co-fondateur du projet Xentios
Programmeur de Xentios