LMLPHP后院

MacOS dd 显示进度技术

maybe yes 发表于 2022-11-03 20:22

发明这个方法的人,真的好牛逼!

dd 命令在 Linux 操作系统上运行,我们使用 “killall -USR1 dd” 命令即显示当前 dd 命令刻录的进度,但在 OS X 上面执行此命令,可能会导致 dd 进程中止。

维基百科对 dd 命令的介绍说:“向运行中的 dd 进程发送 SIGINFO 信号(Linux 上为 USR1)可以使它将 I/O 统计信息打印到 标准错误一次,然后继续复制(注意在 OS X 上,信号可能导致进程终止)。” 重点是 SIGINFP 信号,Linux 上为使用 “killall -USR1 dd” 向运行中的进程发送 SIGINFO 信号,但在 OS X 中向进程发送 SIGINFO 的命令不是 “killall -USR1 dd”,而是 “kill -SIGINFO PID” 或者是 “killall -29 dd”(因为 SIGINFO 在 OS X 中的编号为 29,可以使用 kill -l SIGINFO 查看)。

~$ ps aux | grep dd | grep -v "grep"
root             59936   2.2  0.0  4275956    900 s002  U+    5:58下午   1:30.74 dd if=/Users/x/Downloads/Win10_22H2_Chinese_Simplified_x64.iso of=/dev/disk2
_hidd               96   0.2  0.0  4380080   4552   ??  Ss   20 922   50:57.17 /usr/libexec/hidd
xxx               3068   0.0  0.0  5472476   3144   ??  S    21 922    0:19.30 /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storedownloadd
xxx                329   0.0  0.0  4377100   4388   ??  S    20 922    0:23.38 /System/Library/Image Capture/Support/icdd
xxx                315   0.0  0.0  4349576   2200   ??  S    20 922    0:03.51 /System/Library/Frameworks/AddressBook.framework/Executables/ContactsAccountsService
xxx                294   0.0  0.1  4479940   9652   ??  S    20 922    1:26.51 /System/Library/PrivateFrameworks/CloudKitDaemon.framework/Support/cloudd
root               252   0.0  0.0  4376164   1376   ??  Ss   20 922    0:01.61 /usr/libexec/biokitaggdd
root               225   0.0  0.0  4377016   1044   ??  Ss   20 922    0:00.62 /System/Library/PrivateFrameworks/EmbeddedOSInstall.framework/Versions/A/XPCServices/EmbeddedOSInstallService.xpc/Contents/MacOS/EmbeddedOSInstallService
root               168   0.0  0.0  4382040   2616   ??  Ss   20 922    0:06.32 /System/Library/PrivateFrameworks/WirelessDiagnostics.framework/Support/awdd
root             59935   0.0  0.0  4289936   5356 s002  S+    5:58下午   0:00.03 sudo dd if=/Users/x/Downloads/Win10_22H2_Chinese_Simplified_x64.iso of=/dev/disk2
$ sudo kill -SIGINFO 59935
Password:
$ sudo kill -SIGINFO 59935
$ sudo dd if=~/Downloads/Win10_22H2_Chinese_Simplified_x64.iso of=/dev/disk2
4045137+0 records in
4045136+0 records out
2071109632 bytes transferred in 8412.771634 secs (246186 bytes/sec)
4090841+0 records in
4090840+0 records out
2094510080 bytes transferred in 8465.194380 secs (247426 bytes/sec)

12/22 冬至补充,Ctrl+T 快捷键。

2024-11-22 04:37:13 1732221433 0.008040