Terminal
當我按 Ctl+t 時,為什麼 dd 只輸出?
這是與 OSX。當我在終端中執行它時
scottcarlson$ sudo dd if=Downloads/CentOS-7-x86_64-Everything-1511.iso of=/dev/disk2 2> Desktop/out.txt
然後這個在另一個
tail -f Desktop/out.txt
它只在我按下
Ctl``t
第一個終端時更新日誌dd
。這是因為天性dd
嗎?我不確切知道它是如何寫入設備的,但是對於該過程來說是否需要休息一下並寫入日誌?
它僅在我使用 dd 在第一個終端中按 Ctlt 時更新日誌。這是因為dd的性質嗎?
是的。它的本質是在
dd
接收到給定信號時輸出其目前狀態。在大多數作業系統下,這個信號是SIGUSR1
一個標准信號,但在 OS X 上,它使用一個名為 的非標准信號SIGINFO
。此外,OS X 有一個tty
驅動程序設置,允許使用組合鍵發送該特定信號Ctrl``T
,就像在所有作業系統上Ctrl``C
發送一樣。SIGQUIT
我不確切知道它是如何寫入設備的,但是對於該過程來說是否需要休息一下並寫入日誌?
您正是在要求它使用快捷方式來做到這一點。如果您想要定期自動更新,沒有什麼可以阻止您執行類似的簡單 shell 循環:
while kill -INFO $(pgrep dd); do sleep 5; done
這假設
pgrep
在 OS X 上可用。否則,選擇pid
您的dd
命令並將其用作kill
第二個參數。