je voudrais pouvoir lancer comme un daemon un exécutable non prévu pour ça à la base ... avec quelle(s) commande(s) puis-je faire cela à l'intérieur d'un script??
Le fonctionnement d'un démon, c'est "je me lance, et j'attends qu'on me demande quelque chose, en me tournant les pouces".
Un exécutable "ordinaire" va s'arrêter une fois qu'il aura fini son traitement.
Conclusion, au niveau de l'exécutable, tu ne peux rien faire s'il n'a pas été prévu pour.
Par contre, il est tout à fait possible d'avoir un programme qui tourne comme un démon, mais qui passe la main à chaque demande de traitement.
Si ton exécutable travaille à travers une connexion réseau (comme un serveur web/ftp/ssh ...), tu peux regarder xinetd, qui fait justement ça.
Si tu as un fonctionnement plus spécifique, tu peux éventuellement faire un script qui fait une boucle infini (attention à ne pas se louper !), et qui lance ton exécutable quand il y en a besoin.
Si tu veux fait un script de démarrage c'est un peu plus compliqué...
(la solution au dessus va laisser tourner en tache de fond le script tout le temps que la machine sera allumée sans shutdown ou reboot)
Sous les distributions Linux, il existe parfois des commandes déjà prêtes à l'emploi:
¤ Sous Debian, il y a start-stop-daemon (voir man ou info)
¤ Sous RedHat, il y a, si je ne me trompe, une fonction daemon ou daemonize
=> Il faut jeter un oeil aux scripts dans le répertoire /etc/init.d pour voir comment utiliser ce type de commande en "pratique" :P
PS: Dans la mesure du possible, quand ces fonctions existent, autant les utiliser :-) surtout que je n'ai pas trop de succès avec nohup: le détachement définitif [du terminal d'exécution, des signaux, ...] n'est pas forcément acquis...
# réponse stupide
Posté par Ontologia (site web personnel) . Évalué à -1.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: réponse stupide
Posté par IzNoWin . Évalué à 1.
# nohup ?
Posté par Jean Meyrand . Évalué à 0.
# lancer comme un daemon un exécutable non prévu pour cela
Posté par Jllc . Évalué à 1.
Un exécutable "ordinaire" va s'arrêter une fois qu'il aura fini son traitement.
Conclusion, au niveau de l'exécutable, tu ne peux rien faire s'il n'a pas été prévu pour.
Par contre, il est tout à fait possible d'avoir un programme qui tourne comme un démon, mais qui passe la main à chaque demande de traitement.
Si ton exécutable travaille à travers une connexion réseau (comme un serveur web/ftp/ssh ...), tu peux regarder xinetd, qui fait justement ça.
Si tu as un fonctionnement plus spécifique, tu peux éventuellement faire un script qui fait une boucle infini (attention à ne pas se louper !), et qui lance ton exécutable quand il y en a besoin.
# setsid
Posté par Raphaël G. (site web personnel) . Évalué à 2.
setsid ton_nom_dexecutable
Si tu veux fait un script de démarrage c'est un peu plus compliqué...
(la solution au dessus va laisser tourner en tache de fond le script tout le temps que la machine sera allumée sans shutdown ou reboot)
# Quelques idées...
Posté par Steve Azriel . Évalué à 1.
Sous les distributions Linux, il existe parfois des commandes déjà prêtes à l'emploi:
¤ Sous Debian, il y a start-stop-daemon (voir man ou info)
¤ Sous RedHat, il y a, si je ne me trompe, une fonction daemon ou daemonize
=> Il faut jeter un oeil aux scripts dans le répertoire /etc/init.d pour voir comment utiliser ce type de commande en "pratique" :P
Pour le reste, il y a les daemontools [http://cr.yp.to/daemontools.html] de D. J. Bernstein ...
Bon courage !
Cdlt,
PS: Dans la mesure du possible, quand ces fonctions existent, autant les utiliser :-) surtout que je n'ai pas trop de succès avec nohup: le détachement définitif [du terminal d'exécution, des signaux, ...] n'est pas forcément acquis...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.