我正在使用dd
网络将磁盘映像传输到 BeagleBone 上的 SD 卡。
在与此 BeagleBone 的 ssh 连接中使用pkill -USR1 -n -x dd
可以让我获得传输过程的状态更新,这非常棒。我只是好奇它实际上是如何工作的,以便我将来可以有效地使用它。
读完后man pkill
仍然没有完全解释如何pkill -USR1 -n -x dd
为我提供这个非常有用的状态更新。
答案1
这是特定于 的行为dd
。从dd
手册页:
向正在运行的“dd”进程发送 USR1 信号,使其将 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
)