10.6 Snow Leopard Mettre une copie de fichiers en pause

cowpowing

Membre enregistré
28 Janvier 2016
3
0
38
Bonjour,
je souhaiterais savoir comment mettre une copie de fichier en pause, si c'est possible ?
J'ai lancé une copie de données importante vers un disque dur externe, je voudrais faire pause car mon disque chauffe...

Merci pour votre aide.
 
Salut

Il faudrait récupérer le pid de ton process de copie.
Tu l'as fait comment cette copie? Via le Finder?
 
Je pense que là c'est fini.
Si tu étais passé par le terminal (commande cp) on peut très bien trouver le process et son PID (Process IDentifier) qui est un n°
A partir de là toujours dans le terminal on peut mettre la commande en attente :
kill -STOP PID
puis la remettre active par
kill -CONT PID

Bien sur pour ça il faut connaitre ce fameux PID.
Toujours dans le terminal (par exemple pour une copie)

ps -eaf | grep cp

Jean:~ jean$ ps -eaf | grep cp
501 545 540 0 7:00 ttys000 0:01.31 cp /Volumes/Donnees/Macintosh HD.dmg /Volumes/Data_4
501 554 548 0 7:00 ttys001 0:00.00 grep cp
Jean:~ jean$


et le PID de la commande cp est 545 que je peux manipuler par les commandes ci-dessus.
 
Ceci n'est pas une tartine
☟​

Pour ajouter aux remarques de Jean :coucou: quelques petites gloses touffues (destinées à enduire de confiture rhétorique ses austères canapés linuxiens
361608_original.png
)
=>

- a) il y a un inconvénient à lancer un processus de copie via le Finder (par un glisser-déposer d'un élément du volume de l'OS dans l'espace d'un disque externe, par exemple) : c'est que cette tâche déterminée ne donne pas lieu à un processus indépendant de celui du Finder, mais se trouve "enveloppée" (wrapped) dans le processus générique du Finder.

Il est facile de s'en apercevoir en lançant une copie via le Finder, puis en allant à : Applications/Utilitaires pour lancer le «Moniteur d'Activité», qui est une interface graphique permettant d'inspecter les différents processus en cours d'activité et de récupérer les informations afférantes, comme par exemple le % de processeur (CPU) consommé ou le fameux PID (Process_IDentifier : IDentifiant numérique de Processus). On s'aperçoit tout de suite que le processus de copie en cours n'est pas identifié comme un processus spécifique & isolé (par exemple un cp), mais reste englobé dans le processus enveloppant du Finder dont le % de consommation du CPU se montre accru.

Ce constat a une conséquence sur la problématique de la suspension éventuelle de ce processus de copie. En effet, s'il s'était agi d'un processus absolument spécifique indépendant du processus enveloppant du Finder (comme de lancer l'utilitaire cp dans l'interface du «Terminal), alors il aurait été aisé de geler momentanément l'activité de se processus (suspension), quitte à le reprendre ensuite - ce par l'intermédiaire de commandes supplémentaires dans le «Terminal». Mais, dès lors qu'il s'agit d'un processus de copie "enveloppé" (wrapped) dans le processus générique du Finder et pas exporté isolément hors de lui (comme un cp local), alors il n'est pas possible de suspendre ce processus autrement qu'en suspendant... le processus global du Finder. Ce qui n'a rien de commode pour l'utilisateur, car le Finder se trouve alors gelé, ce qui stoppe la capacité de navigation graphique. Ou, sinon, dans le panneau de progression de la tâche de copie en cours affiché par le Finder, la seule possibilité offerte étant de supprimer l'opération en cours.

En conséquence de ces considérations : un utilisateur qui envisage une tâche de copie très lourde, qu'il serait opportun de suspendre à un point donné histoire de laisser refroidir la machine par exemple, aurait dans ce cas avantage à lancer l'opération en ligne de commande dans le «Terminal», afin qu'il s'agisse d'un processus isolé spécifique susceptible d'être manipulé par une commande de suspension, et pas d'une opération enveloppée dans le processus générique du Finder.

--------------------

- b) pour ce qui est d'une tâche lancée via l'interface textuelle du «Terminal», si aucune précaution n'a été prise d'entrée (genre passation simple d'une commande cp sans l'esperluette & en bout de commande), alors le processus lancé bloque dans la fenêtre ouverte du «Terminal» le ré-affichage de l'invite de commande, ce qui ne permet pas de passer directement une commande kill -STOP PID telle que préconisée par Jean.

Il est bien sûr possible d'ouvrir en parallèle un nouvel onglet permettant de récupérer le prompt, afin de passer la commande, mais je trouve qu'afin de ne pas disperser un même traitement entre plusieurs espaces d'affichage, il serait plus direct de faire simplement un ctrl Z au clavier, ce qui a un effet triple : renvoi de l'opération (cp ici) en tâche de fond (background), suspension concomitante du processus, et récupération du prompt. La mention automatique : [x]+ Stopped indiquant l'état suspendu de la tâche, ainsi que son n° spécifique de processus de tâche de fond (le [x] qui n'est pas son PID, mais son n° de rang dans les tâches d'arrière-plan, genre [1] si c'est là la première tâche renvoyée en coulisses).

À partir de là, un simple : bg %x (comme backgroundx est le n° précité de rang dans les tâches d'arrière-plan) relance le processus tout en le laissant en arrière-plan, ce qui permet de récupérer le prompt ; sinon, un fg %x (comme foreground) permettrait de relancer le processus en le ramenant à l'avant-plan, avec l'inconvénient de revoler le prompt, mais l'intérêt pratique de savoir à coup sûr que le processus est toujours en train de s'effectuer (running) tant que l'invite de commande ne s'est pas réaffichée en signal de complétion. Sinon, à laisser la tâche en arrière-plan (background) pour permettre la récupération du prompt, il faut par exemple s'informer par un jobs occasionnel de l'état des lieux...

--------------------
Note personnelle : j'ai fini par délaisser totalement le Finder d'OS X au profit de «PathFinder» que j'utilise en lieu et place de Finder. L'avantage procuré dans le cas qui fait l'objet de ce fil (une opération de recopie lancée en mode graphique) est que le panneau de «PathFinder» affichant la progression de la tâche comporte non le seul bouton de suppression (comme dans le panneau du Finder), mais aussi un bouton de suspension - ce qui évite de passer a priori par le «Terminal» quand on anticipe la nécessité d'une suspension de tâche de copie en cours d'exécution...
 
Dernière édition par un modérateur:
Salut oh grand gloseur :D

Perso quand j'ai une tache à "bricoler" je fais suivre la ligne de commande du & :
cp /Volumes/Donnees/Macintosh HD.dmg /Volumes/Data_4 &
Ce qui me renvoie le prompt et le PID du process.
Il m'arrive parfois, les jours ensoleillés, de la faire précéder de nohup afin que la fermeture de la fenêtre du terminal n'arrête pas cette tâche :
nohup cp /Volumes/Donnees/Macintosh HD.dmg /Volumes/Data_4 &
Sinon il est facile d'ouvrir une 2ème fenêtre du Shell pour administrer un process.;)
 
Bonjour,

sujet de réflexion intéressant.
Un processus de copie lancé via Automator ou un Applescript aurait-il son petit PID à lui tout seul ? Auquel cas, le suspendre au gré de nos besoins deviendrait envisageable.
Autre hypothèse, basculer vers une autre session a-t-il pour vertu de suspendre l'activité du Finder séquestrant la tâche de copie ?
L'option Pathfinder ne me séduit guère, supposant une application supplémentaire dans la RAM. J'ai un meilleur usage à faire de celle-ci.
 
PathFinder est un bon produit mais un peu agaçant à l'occasion (il souffre de bugs récurrents, même dans sa toute dernière version).
Il te permet de te passer complètement du Finder que tu peux ne pas lancer : tu n'as dans ce cas pas deux processus mais bien un seul (si tu tiens à préserver ta RAM...)

Quant aux commandes en mode texte, il faut se méfier : cp n'a pas le même comportement que la copie du Finder ou de PathFinder.
Il faut bien voir ses options et sa page de manuel pour éviter les déconvenues. Si on veut que la destination ressemble à la source, mieux vaut utiliser ditto (ou rsync aussi bien).
 
J'ai vus que t'es sous SL, mais il me semble que depuis El Capitan en peux mettre une copie en pause. Je me trompe? (Si quelqu'un pourrait me le confirmer)
 
Ah ok Au temps pour moi
 
Ta signature te situe sous Mavericks : tu n'as donc probablement pas testé toi-même.

En tout cas, tu n'as pas bien lu mon messages #11 ! o_O

Oui, je suis sous Mavericks et je test aussi EL Capitan (mais je n'ai effectivement pas encore testé cette fonction). Par contre selon l'article, on peu même reprendre la copie lorsqu'on a fermé la session. Donc -sans l'avoir testé- c'est comme si on mettait la copie en pause...


Oui j'ai bien lu le post #11 mais je me suis peut-être mal exprimé. Je voulais dire que même en stopant la copie manuellement, on peut la reprendre. Donc si l'auteur de cette discussion passe sous El Capitan son problème serait, à priori, résolu
 
........
Oui j'ai bien lu le post #11 mais je me suis peut-être mal exprimé. Je voulais dire que même en stopant la copie manuellement, on peut la reprendre. Donc si l'auteur de cette discussion passe sous El Capitan son problème serait, à priori, résolu
Comment tu fais pour stopper manuellement une copie "Finder"?
 
D'après l'article, tu appuie sur la croix, ensuite quand tu veux reprendre la copie, tu remets ton fichier dans le dossier de destination et tu auras un pop up te demandant si tu veux continuer la copie ou la recommencer...