Forums

ericc is dreaming :: Forums :: Support :: Linux
 
<< Sujet précédent | Sujet suivant >>
Astuce long process
Modérateurs:ericc, toxxic, mich_belge
Auteur Message
ericc
dim. août 11 2013, 21:48
ericc

Membre enregistré #1
Inscrit(e) le: ven. avril 06 2007, 20:31
Messages: 2277
A qui (utilisant Linux) cela n'est jamais arrivé ?
Vous tapez une commande dans le terminal en pensant que cela va durer que quelques minutes et après 1h ce n'est toujours pas terminé.
Vous ne voulez pas interrompre la commande car vous ne savez pas quel pourrais être le résultat et vous ne voulez pas non plus (ou ne pouvez pas) ouvrir une autre fenêtre terminal pour faire autre chose.

Dans mon cas, j'étais connecté en ssh sur un serveur distant et j'avais lancé une commande pour dupliqué une base de données.
Je pensais que cela n'allait durer moins de 10 minutes mais après 2h, c'était toujours en train de tourné. J'avais mal estimé la taille de la base de données.
Ne pouvant estimé combien de temps il serait encore nécessaire et ne souhaitant pas resté connecté pendant des heures pour pas grand chose, j'étais bloqué !!

Si j'avais su à l'avance, j'aurais pu lancer la commande directement en background (arrière-plan) en ajoutant "&" à la fin de celle-ci, mais c'était trop tard.
J'aurais aussi pu lancer "screen" avant et exécuter celle-ci dans le pseudo-terminal ... il faut que je prenne ce réflexe, de toujours lancer "screen"

Pour se sortir de ce genre de situation, c'est assez simple pourtant ...

Dans la console, tapez puis quand vous avez à nouveau le prompt: bg
(pour background / arrière-plan)
  1. ericc@predator:~$ sleep 100
  2. ^Z
  3. [1]+  Stopped                 sleep 100
  4. ericc@predator:~$ bg
  5. [1]+ sleep 100 &
  6.  

Pour vérifier qu'elle continue de s’exécuter en tache de fond, tapez "jobs"
  1. ericc@predator:~$ jobs
  2. [1]+  Running                 sleep 100 &

Quand la commande se termine, "jobs" vous l'indique (une seule fois !)
  1. ericc@predator:~$ jobs
  2. [1]+  Done                    sleep 100
  3.  

Pour la ramener, au premier plan, il suffit de taper "fg" (foreground / avant-plan) suivi du n° de job (le chiffre entre crochets affiché par la commande "jobs", pas le pid)
  1. ericc@predator:~$ fg 1
  2. sleep 100


Voilà, à se souvenir pour la prochaine fois que cela vous arrive

Have fun

ericc
Retour en haut
Site Internet
 

Allez à:     Retour en haut

Fil d’informations pour ce sujet: RSS 0.92 Fil d’informations pour ce sujet: RSS 2.0 Fil d’informations pour ce sujet: RDF
Powered by e107 Forum System
Temps d'exécution:0.1099s, dont0.0129de celui des requêtes.Requêtes BdD:27. Utilisation mémoire:1,365ko