powertop показывает значительно более 100% «C0 active» - разве это невозможно?

Думаю, я придумал, как изменить ваш опыт , чтобы превратить его во что-то, что другие люди смогут воспроизвести:

$ (echo hello; sleep 1; echo world) | tee >(cat)
hello
hello                                                       … and, after a brief delay,
world
world

$ echo "$?"
0

$ (echo hello; sleep 1; echo world) | tee >(echo yo)
yo
hello

$ echo "$?"
141

Как вы, надеюсь, понимаете, > ( команда ) создает канал для процесса, выполняющего команду . Стандартный ввод команды связан с именем пути , что и другие команды в командной строке (в данном случае tee ) {{1} } можно открыть и написать в. Когда команда имеет значение cat , процесс сидит там и читает из стандартного ввода, пока не получит EOF. В этом случае tee без проблем записывает все данные, которые он читает со своего стандартного ввода, в канал.

Но когда команда имеет значение echoyo , процесс записывает yo в стандартный вывод и немедленно завершает работу. Это вызывает проблему для tee ; когда он пишет в канал без процесса на другом конце, он получает сигнал SIGPIPE.

Очевидно, версия tee для OS X сначала записывает в файл (ы) в командной строке, а затем в стандартный вывод. Итак, в вашем примере ( echo hi | tee> (echo yo) ), tee получает отказ канала при самой первой записи. В то время как версия tee в Linux и Cygwin сначала записывает в stdout , так что удается записать привет на экран, прежде чем он умрет. В моем расширенном примере tee умирает, когда записывает hello в канал, , поэтому у него нет возможности читать и писать мир .

1
07.05.2019, 22:12
1 ответ

powertop необходимо откалибровать на мобильных устройствах, в частности, на процессоре Intel i5 -5300U .

0
28.01.2020, 00:12

Теги

Похожие вопросы