Cosa significa esattamente il comando pkill -USR1 -n -x dd?


12

Sto usando ddper effettuare un trasferimento di rete di un'immagine disco su una scheda SD sul mio BeagleBone.

L'utilizzo pkill -USR1 -n -x ddin una connessione ssh a questo BeagleBone mi dà un aggiornamento dello stato del processo di trasferimento, il che è fantastico. Sono solo curioso di sapere come funziona effettivamente, quindi posso usarlo in modo efficace in futuro.

Dopo man pkillaverlo letto , non ho ancora spiegato come pkill -USR1 -n -x ddfunziona per darmi questo aggiornamento di stato molto utile.

Risposte:


15

Questo è un comportamento specifico di dd. Dalla ddpagina man:

L'invio di un segnale USR1 a un processo 'dd' in esecuzione lo fa stampare le statistiche I / O su errore standard e quindi riprendere a copiare.

$ 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

-USR1dice pkilldi inviare il USR1segnale. -ne -xsono solo filtri per assicurarti di inviare al processo giusto ( -ninvia al processo più recente e -xsignifica che il processo deve essere nominato esattamente dd)


2
Questo è solo nella versione GNU di 'dd' (AFAIK). Un SIGUSR1 su 'dd' per altri sistemi operativi (ad es. AIX, HP-UX e Solaris) terminerà il processo, per impostazione predefinita.
DarkHeart,

@DarkHeart usa SIGINFO (o INFO) su osx (probabilmente lo stesso su bsd)
Akhan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.