命令pkill -USR1 -n -x dd到底是什么意思?


12

dd用来将磁盘映像网络传输到BeagleBone上的sd卡上。

pkill -USR1 -n -x dd在此BeagleBone的ssh连接中使用时,会为我提供传输过程的状态更新,这很棒。我很好奇它实际上是如何工作的,所以我将来可以有效地使用它。

阅读后,man pkill它仍然没有完全解释如何pkill -USR1 -n -x dd为我提供这一非常有用的状态更新。

Answers:


15

这是特定于的行为dd。从dd手册页:

将USR1信号发送到正在运行的“ dd”进程将使其将I / O统计信息打印为标准错误,然后恢复复制。

$ 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

-USR1告诉pkill发送USR1信号。-n并且-x只是确保您发送到正确的进程的过滤器(-n发送到最新的进程并-x意味着必须准确命名该进程dd)。


2
这仅在GNU版本的“ dd”(AFAIK)中。默认情况下,其他操作系统(例如AIX,HP-UX和Solaris)的SIGUSR1到'dd'将终止该过程。
DarkHeart 2014年

@DarkHeart在osx上使用SIGINFO(或INFO)(在bsd上可能相同)
akhan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.