Ctrl+Z Ctrl+C bg fg

Ctrl+Z Ctrl+C bg fg - Linux et OS Alternatifs

Marsh Posté le 09-07-2001 à 17:00:55    

Pourriez-vous m'expliquer la différence entre ces deux combinaisons de touches:
- [Ctrl]+[C]
- [Ctrl]+[Z]
 
Et pendant que vous êtes là, les deux commandes qui suivent elles servent à quoi?
bg
fg
 
Arrêtez-moi si je dis des conneries, mais bg, ça ne servirait pas un peu à la même chose que le & à la fin d'une ligne de commandes? Comment ça s'utilise exactement?

Reply

Marsh Posté le 09-07-2001 à 17:00:55   

Reply

Marsh Posté le 09-07-2001 à 17:06:01    

  • [Ctrl]+[C] : arrète le processus courant, cad que ca le kill...
  • [Ctrl]+[Z] : mets en arrère plan le processus courant, et rends la main (en fait, on se retrouves sous un shell)
  • bg : continues l'execution en tache de fonds d'un programme qui s'est mangé un [Ctrl]+[Z] dans la geule...
  • fg : continues l'execution en avant plan (on perds le prompt shell)d'un programme qui s'est fait [Ctrl]+[Z]er...
  • jobs : liste les processus qui sont sujets à [Ctrl]+[Z]


---------------
-- NO SLACKERS - violators will be fsck'd & tar'd
Reply

Marsh Posté le 09-07-2001 à 17:08:43    

[root@bastard root]# xmms&  
[1] 23613  
[root@bastard root]# pwd  
/root  
[root@bastard root]# fg %1  
xmms  
pwd  
[CTRL+Z ]
[root@bastard root]# bg %1  
[1]+ xmms &
[root@bastard root]# pwd
/root  
 
> xmms&  
xmms en arriere avec un job = 1  
le prompt marche, j'ai la main dans le shell  
> fg %1 <- je met en avant le job n°1  
je perd la main.  
CTRL+Z  
je reprend la main mais le processus est suspendu  
> bg %1  
je le remet en arirere plan et le processus reprend.

 

[edtdd]--Message édité par Dark_Schneider--[/edtdd]


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 09-07-2001 à 17:10:51    

J'avais trouvé ca aussi:
http://linux4all.2y.net/?rub=configuration&page=3#III.


---------------
"not everyone likes metal..... FUCK THEM" Fat Ed.
Reply

Marsh Posté le 09-07-2001 à 17:20:40    

Vous m'avez l'air en forme les gars, alors j'en profite!
 
Quand je fais jobs (que je ne connaissais absolument pas, merci :jap: ):

Code :
  1. $jobs
  2. [1]-  Stopped                 dummy 3 2 1 0
  3. [2]   Stopped                 dummy 6 5 4 3 2 1 0
  4. [3]+  Stopped                 dummy A B C D
  5. $


Donc, apparemment, le numéro entre crochets, ça sert pour rappeler la tâche que l'on veut relancer avec bg ou fg, stimmt?
 
Mais le + et le moins à côté du numéro? C'est juste pour indiquer que ceux du haut sont moins récents que ceux du bas?
 
Il existe d'autre commandes de la même cuvée?
 
Et lorsque l'on relance une tâche avec bg, comment on fait pour de nouveau avoir prise sur le processus? (On ne peut plus le stopper avec [Ctrl][Z]... Existe-t-il une commande "simulant" un [Ctrl][Z] qui prendrait le pid en argument?

Reply

Marsh Posté le 09-07-2001 à 17:25:49    

tu utilises le numéro de job.
 
si tu veux killer le process -> kill PID
ps -fe <- voir la liste des processus.
ps  <- voir une liste réduite
ps -a <- simplification du -fe avec liste réduite.


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 09-07-2001 à 17:30:44    

tiré de man bash.
 
 
 
CONTRÔLE DES JOBS
 
Le contrôle des jobs permet d'arrêter (suspend) sélectivement l'exécution d'un processus, et de la reprendre (resume) ultérieurement. L'utilisateur bénéficie généralement de cette possibilité grâce à l'action conjointe du pilote de terminal et de bash.  
 
L'interpréteur associe un job à chaque tube. Il maintient une table des jobs en cours d'exécution, cette table pouvant être affichée avec la commande jobs. Quand bash lance un job de manière asynchrone (en arrière-plan), il affiche une ligne du genre :  
 [1] 25647  
 
Cette ligne indique que le job est associé au numéro 1, et que le PID du dernier processus dans le tube est 25647. Tous les processus dans un tube simple font partie du même job. Bash utilise la notion de job comme une abstraction pour aider à les contrôler.  
 
Pour faciliter l'implémentation d'une interface utilisateur pour le contrôle de job, le système introduit la notion d'ID de groupe de processus associés à un terminal. Les membre de ce groupe de processus (ceux dont le GID est égal au Process Group ID du terminal) recoivent les signaux déclenchés par le clavier, comme SIGINT. Ces processus sont dits en avant-plan. Les processus en arrière-plan sont ceux dont le Process-GID differe de celui du terminal, ceux qui ne reçoivent pas les signaux déclenchés par le clavier. Seuls les processus en avant-plan peuvent lire depuis le terminal ou écrire dessus. Les processus en arrière-plan qui tentent une lecture sur le terminal (ou une écriture dessus), reçoivent les signaux SIGTTIN (SIGTTOU) émis par le pilote de péripherique du terminal, lesquels signaux suspendent l'exécution du processus (sauf interception du signal).  
 
Si le système d'exploitation sur lequel bash fonctionne permet le contrôle des jobs, bash vous y donne accès. La frappe d'un caractère suspension (généralement ^Z, Contrôle-Z) pendant l'exécution d'un processus arrête celui-ci, et redonne la main à bash. La frappe d'un caractère suspension différée (généralement ^Y, Contrôle-Y) arrêtera le processus au moment où il tentera de lire depuis le terminal, et la main reviendra à bash. Il est possible de manipuler ces jobs en utilisant la commande bg (background = arrière-plan) pour continuer l'exécution en arrière-plan, fg (foreground) pour la reprendre en avant-plan, ou encore la commande kill pour tuer le processus. Un ^Z prend effet immédiatement, et élimine les sorties en attente.  
 
Il y a plusieurs manières de faire référence à un job.  

  • Le caractère % introduit un nom de job. Le job numéro n peut être noté %n.  
  • On peut également faire référence à un job en utilisant un préfixe du nom utilise pour le lancer, ou une partie de la ligne de commande. Par exemple, %ce se réfère à un job arrêté nomme ce. Si ce préfixe correspond à plusieurs jobs, bash renverra une erreur. D'autre part, %?ce, fait référence à n'importe quel job contenant la chaîne ce dans sa ligne de commande. Si la sous-chaîne correspond à plusieurs jobs, bash renverra une erreur.  
  • Les symboles %% et %+ référencent le job courant du shell, c'est à dire le dernier job arrêté alors qu'il se trouvait en avant-plan. Le job précédent peut être mentionné en utilisant %-. Dans les affichages se rapportant aux jobs (par exemple ceux de la commande jobs le job courant est toujours indiqué par un +, et le job précédent avec un -.  


Il suffit de nommer un job pour le ramener en avant-plan : %1 est synonyme de ``fg %1'', et ramène le job 1 depuis l'arrière-plan vers l'avant-plan. De même, ``%1 &'' relance le job 1, mais en arrière-plan cette fois, de manière équivalente à ``bg %1''.  
 
Le shell est immédiatement prévenu lorsqu'un job change d'état. Normalement bash attend d'être prêt à afficher son symbole d'accueil avant de fournir un rapport sur les changements dans les statut des jobs, afin de ne pas perturber les autres affichages. Avec l'option -b de la commande interne set, bash affichera les modifications immédiatement (Voir aussi la description de la variable notify dans le paragraphe Variables du Shell plus haut.)  
 
Si vous essayez de quitter bash alors que des jobs sont suspendus, le shell affichera un message d'avertissement. Vous pouvez alors utiliser la commande jobs pour vérifier leurs états. Une fois cette commande invoquée, ou si vous essayez à nouveau de quitter le shell immédiatement, il n'y aura plus d'avertissement, et les jobs suspendus seront définitivement terminés.


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 09-07-2001 à 17:35:34    

Bon, apparemment, j'ai tout faux avec mes + et -! Quelqu'un sait-il à quoi ça sert?

Code :
  1. [1]   Stopped                 dummy 3 2 1 0
  2. [3]   Stopped                 dummy A B C D
  3. [4]   Stopped                 dummy 6 5 4 3 2 1 0
  4. [5]-  Stopped                 dummy prout prout
  5. [6]+  Stopped                 dummy comment ca marche


 
Dark_Schneider > Heu... C'est sympa ton exemple, mais je suis loin d'avoir tout pigé... Déjà, rappelle-moi, s'il te plaît, le fonctionnement du signe % sous Linux... (J'ai jamais dit que j'étais doué, hein!)
 
Sinon, je crois que j'ai compris grosso modo le principe... Si je lance un truc en arrière plan avec le & en fin de ligne de commande, je le récupère en le recherchant dans la liste montrée par jobs, puis je le fais passer devant avec fg et là je peux lui faire un [Ctrl][Z], c'est ça?
 
Juste pour être sûr, dès que je fais [Ctrl][Z], mon processus est "figé", il ne consomme plus de temps CPU, il hiberne quoi?
 
Mais j'insiste avec ma question précédente (même si je n'ai pas encore regardé si quelqu'un y avait répondu :D ): Existe-t-il une commande permettant de mettre un processus dans cet état provoqué par [Ctrl][Z]? Et comment s'appelle cet état? (C'est pas un processus zombie, ça... Je ne me trompe pas?)

Reply

Marsh Posté le 09-07-2001 à 17:49:54    

Wouah! C'est dingue tout ce que j'ai pu apprendre en 5 minutes! J'avais jamais compris ce que signifiait le [1] à gauche du pid quand on lançait un truc en arrière-plan...
 
Mais pourquoi que moi j'ai pas des belles pages de man en français? Peut-être que je lirais plus de 5 lignes si c'était en français... :D
 
Enfin bon, merci à tous, je me coucherai moins bête ce soir!

Reply

Marsh Posté le 09-07-2001 à 17:54:06    

Prends une mandrake :D
 
[root@bastard root]# rpm -qa | grep man-pages
man-pages-fr-0.9-1mdk
man-pages-1.36-2mdk
 
ou install les manpages en fr.


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 09-07-2001 à 17:54:06   

Reply

Marsh Posté le 09-07-2001 à 18:50:19    

Nan, mais en fait je dois utiliser Linux au boulot, et je vais pas commencer à foutre mon merdier (surtout vu comme je suis doué! :D )
Mais ne t'inquiète pas, je viens d'acheter un bon gros bouquin de 700 ou 800 pages sur Linux qui devrait bien m'aider! En septembre, je devrais maîriser la bête! (L'espoir fait vivre...)

Reply

Sujets relatifs:

Leave a Replay

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