
커널 6.4.0을 사용하여 Linux 시스템을 사용자 정의하고 있는데 이상한 문제를 발견했습니다. 실행한 top > a.txt
후 실행창을 열어보니 여러번 시도한 결과라는 cat a.txt
것을 알 수 있는데 , 다른 Linux 시스템에서는 이런 문제가 발생하지 않습니다. 다른 Linux 시스템에서 이 명령은 명령 결과를 한 번만 표시합니다 . 왜인지 모르겠어요?cat a.txt
top
cat
top
# top > a.txt
# cat a.txt
# ls /usr/bin/top -ltr
lrwxrwxrwx 1 1000 1000 17 Aug 23 02:34 /usr/bin/top -> ../../bin/busybox
다음에 추가 top type
:
# type top
top is /usr/bin/top
답변1
일부 top
구현(예: OpenBSD 및 일부 Linux 시스템에서도 가능)은 출력이 터미널로 전송되는지 또는 터미널이 아닌 것(파이프 또는 파일)으로 전송되는지 여부를 감지하고 그에 따라 동작을 변경합니다. 출력이 터미널에 도달하면 유틸리티는 대화형 모드가 되어 사용자의 입력을 받아들이고 디스플레이를 주기적으로 업데이트합니다. 다른 곳으로 출력할 때는 top
비대화형 모드로 실행되며 기본적으로 하나의 결과 "화면"만 출력한 다음 종료됩니다.
Busybox에 포함된 구현은 top
이를 수행하지 않으며 출력이 파일이나 파이프로 이동하더라도 화면 업데이트를 계속 출력합니다. 각 업데이트 앞에는 화면을 지우는 일련의 제어 문자가 있으므로 cat
최종 화면 업데이트가 표시되어야 합니다(터미널이 제어 문자를 해석하지 않는 한). 반면 편집기에서 파일을 열거나 less
여러 명령을 사용하여 해당 내용을 보는 경우 연속 화면 업데이트. 이는 Linux 시스템에서 때때로 발견되는 procps-ng
변종의 경우에도 해당되는 것으로 보입니다 .top
top
Busybox가 단일 화면의 출력만 파일로 출력하도록 하려면 다음을 사용하십시오.
top -n 1 >file
에 관해서는왜top
이는 사실입니다. 이는 도구를 다양한 방식으로 구현하는 다양한 구현 개발자에 따라 다릅니다 . Busybox에서 이 유틸리티를 구현할 때 내린 결정에 대해 더 많은 정보를 원하시면 top
Busybox 관련 포럼이나 메일링 리스트에 문의하실 수 있습니다.