Linuxiens,
Mon problème est le suivant :
J'ai un serveur de partage de connexion sous knoppix, avec un écran LCD en facade pour afficher l'IP,et d'autres informations. J'ai écrit un petit programme en C qui gère cet écran.
Au démarrage, je lance ssh pour pouvoir administrer mon serveur à distance...
Mais depuis que j'ai mis mon programme en C au démarrage, je n'arrive plus a communiquer avec mon serveur. Je pense que cela est du au fait que mon programme tourne en boucle donc aucune connexion ssh n'est plus possible.
Je voudrais savoir comment pouvoir faire tourner mon programme C en tâche de fond...
Merci
# Utilisateur multitache ????
Posté par LaBienPensanceMaTuer . Évalué à 5.
Comme tout programme lancé au démarrage, il faut que ton soft rende la main pour que l'initialisation du système continue à se faire.
Il faut donc que tu transformes ton programme en "daemon".
Pour ça, deux solutions, tu le lances au démarrage en utilisant:
ton_prog &
ou tu le détaches du terminal directement dans le code, pour ce faire je t'invite à lire la page de man de la fonction setsid.
[^] # Re: Utilisateur multitache ????
Posté par ploum (site web personnel, Mastodon) . Évalué à 3.
if (fork() == 0) then
mon programme
else exit
ça marche aussi bien. Mais rien ne vaut le "&" ;-)
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Utilisateur multitache ????
Posté par Edouard Gomez (site web personnel) . Évalué à 1.
Un daemon propre étant un programme qui se détache du terminal, la première chose à faire est un close(0); close(1); puis un close(2); pour fermer respectivement l'entrée strandard, la sortie standard, et la sortie d'erreur, puis alors de forker le daemon.
Le top du top c'est d'utiliser syslog pour logger toute sortie régulière, de controle, de debug ou annexe.
Pour toutes les infos, lire:
man 2 close
man 2 fork
man 2 syslog
[^] # Re: Utilisateur multitache ????
Posté par gc (site web personnel) . Évalué à 4.
Je n'y ai jamais rien compris. Tu as réussi à trouver d'autres informations pour comprendre la notion de "session", de "process group leader" et de "controlling tty".
Les NOTES disent "A process group leader is a process with process group ID equal to its PID" mais c'est quoi un "process group ID" ?
[^] # Re: Utilisateur multitache ????
Posté par CoinKoin . Évalué à 2.
Pour le visualiser, ps -j.
# pas de solution en ce qui me concerne
Posté par Nap . Évalué à 3.
Un peu comme le service réseau qui cherche pendant trois plombes le serveur DHCP alors que le réseau n'est pas dispo, faisant patienter tous les autres service et le démarrage de l'interface graphique jusqu'à récupérer le time-out.
Sinon je sais pas faire tourner un programme en tache de fond...
Quoiqu'un bon "ton_prog &" fera peut etre l'affaire :)
# nohup XXX &
Posté par ccomb (site web personnel) . Évalué à 3.
Et peut-être même un « nohup prog & » pour que le programme soit détaché du script qui l'a appelé, pour éviter qu'il ne se termine avec son script parent.
[^] # Re: nohup XXX &
Posté par superna (site web personnel) . Évalué à 1.
J'aimerais m'en procurer un pour par exemple afficher la charge de mon ordi....., tu peut me l'indiquer ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.