Bonjour,
Pour mes besoins personnels, j´ai decidé de coder une espèce
de remote shutdown affin d´éteindre a distance les pcs de mon réseau
sans nécessairement avoir a mettre du ssh juste pour ça.
Toute la partie reseau fonctionne sans problème, mais là ou
j´ai des difficultes, c´est pour faire un fork exec.
En effet pour pouvoir lancer mon server depuis un script
init.d il faut que mon process soit un daemon.
Si je lance mon server sans le Daemonizer, shutdown s´execute
a priori sans pepin. Mais par contre si je daemonize le process,
mon execl n´a absolument aucun effet (il en va de meme pour system()).
D´après mon ami google ca pourrais venir du fait que lorsque
je daemonize je ferme tout les déscripteurs ratachés au process père et que je
rattache stdin/out et err a /dev/null.
Mais étant un debutant je me suis basé sur un exemple de code pour daemonizer et
je sais pas exacement ce qu´il faudrais que je fasse pour que mon execl remarche.
Le code pour daemonizer corresponds a la fonction daemonize()(nom tres original ^^)
celui pour le fork/exec de shutdown est sdown() le tout dans sig.c
Sources du server:
http://theainur.free.fr/rshdd.tar.gz
Sources du client(même si dans se cas ca sert a rien ^^):
http://theainur.free.fr/rshd.tar.gz
make pour compiler
make install pour installer (y a aussi un uninstall)
($PREFIX dans le makefile est par default a "/usr")
et ca met un script dans /etc/init.d
donc /etc/init.d/rshdd start pour le lancer
et /etc/init.d/rshdd stop pour arreter
le port d´ecoute est 4896 (je l´ai choisi au hasard ^^)
et ca envoie des messages dans /var/log/daemon.log
(pour une config par default de syslog).
N´hezites pas me faire savoir si le code est trop crade
ou si il y a un moyen quelconque d le rendre plus lisible^^
Pour l´instant j´éssaie de faire en sorte que ca marche je réglerais le problème de la securité plus tard.
Merci d´avance.
Twk