Que signifie exactement la commande pkill -USR1 -n -x dd?


12

J'utilise ddpour effectuer un transfert réseau d'une image disque vers une carte SD sur mon BeagleBone.

L'utilisation pkill -USR1 -n -x ddd'une connexion ssh à ce BeagleBone me donne une mise à jour de l'état du processus de transfert, ce qui est génial. Je suis simplement curieux de savoir comment cela fonctionne réellement afin que je puisse l'utiliser efficacement à l'avenir.

Après l'avoir lu, man pkillil ne m'a toujours pas expliqué comment pkill -USR1 -n -x ddfonctionnait pour me donner cette mise à jour de statut très utile.

Réponses:


15

Il s'agit d'un comportement spécifique à dd. Depuis la ddpage de manuel:

L'envoi d'un signal USR1 à un processus «dd» en cours permet d'imprimer les statistiques d'E / S sur l'erreur standard, puis de reprendre la copie.

$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid

18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied,  34.6279  seconds, 271 MB/s

-USR1dit pkilld'envoyer le USR1signal. -net ne -xsont que des filtres pour vous assurer que vous envoyez au bon processus ( -nenvoie au processus le plus récent et -xsignifie que le processus doit être nommé exactement dd)


2
Ce n'est que dans la version GNU de 'dd' (AFAIK). Un SIGUSR1 à 'dd' pour d'autres systèmes d'exploitation (par exemple AIX, HP-UX et Solaris) mettra fin au processus par défaut.
DarkHeart

@DarkHeart utilise SIGINFO (ou INFO) sur osx (probablement le même sur bsd)
akhan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.