[Developpement linux] Processus en background et job control !

Processus en background et job control ! [Developpement linux] - C - Programmation

Marsh Posté le 31-12-2005 à 00:04:59    

Salut tout le monde !
Apres avoir fait pas mal de recherches sur internet, je me permet de poster ici pour demander de l'aide !
Voici mon probleme :
 
Je suis en train de programmer en C/C++ un shell, qui doit se comporter a peu pres comme un shell unix classique,
c'est en fait un programme lancé a partir d'un shell et qui doit gerer qq fonctionnalités des shells , sans faire appel a la fonction system() bien entendu :p
Pour l'instant tout allait bien mais je suis tombé sur un os : la mise en place du job control  :cry:  
Je dois donc gerer le lancement en background de processus, malheuresement apres de longs et infructueux essais , j'en suis au meme point !
 
Lorsqu'un processus lancé en background demande l'acces en lecture au shell , il doit passer en "Suspended" . Et c la que je coince, comment faire ?
J'ai essayé de faire un dup2() de son entree standard sur /dev/null ou sur un pipe que lui seul utilise et le resultat est le meme : apres l'appel a execve(), le processus meurt . J'ai bien essayé de voir pourquoi en controlant les macros de waitpid() mais rien d'anormal   :heink:  
J'ai aussi essayé de chercher des explications pour savoir comment les vrais shell font mais je n'ai rien trouvé non plus, le man des shells bash et tcsh ne disent rien a ce sujet  ...  :o  
 
J'ai aussi essayé d'intercepter les signaux SIGTTIN et SIGCHLD en vain ... cette saleté de processus meurt et je ne comprends pas pourquoi !
 
En fait je cherche juste un moyen de savoir si un processus donné tente un acces au terminal en lecture , et si c le cas pouvoir l'en empecher  :non:  
Si qqn a une solution a proposer, ce serait vraiment sympa car je ne sais plus quoi faire ! Merci d'avance  :hello:

Reply

Marsh Posté le 31-12-2005 à 00:04:59   

Reply

Marsh Posté le 02-01-2006 à 00:17:33    

A mon avis tu as surtout un probleme de conception. L'interet d'avoir a ecrire un shell c'est de savoir trouver l'information et comprendre les concepts de la programation Unix. Je vais te donner de quoi continuer tes recherches sur internet :
 - As-tu termine ta Line discipline ?
 - Et pour le Process Group Management ?
 
Bonne chance
 
PS : Pourquoi faire quelque chose quand le systeme peut le faire pour toi ?


---------------
Cdl, Danjer
Reply

Marsh Posté le 02-01-2006 à 03:47:24    

Je me demande bien quelle est ta formation pour avoir un shell a faire :D


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
Reply

Marsh Posté le 02-01-2006 à 15:23:29    

Dion a écrit :

Je me demande bien quelle est ta formation pour avoir un shell a faire :D


C'est les gens cools  :sarcastic:  qui ecrivent des shell, et encore plus quand ils le codent avec un clavier mappe en Dvorak


Message édité par Danjer le 02-01-2006 à 15:23:50

---------------
Cdl, Danjer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed