'nohup top'이 출력 라인을 차단하는 이유는 무엇입니까?

'nohup top'이 출력 라인을 차단하는 이유는 무엇입니까?

nohup주기적으로(15초마다) 출력을 기록하고 싶습니다 . top이를 위해 SSH를 사용하여 서버에 로그인하고 다음 명령을 실행한 후 다시 로그아웃합니다.

nohup top -b -c -d15 &

-c플래그는 명령에 대한 추가 정보를 제공하지만 생성된 nohup.out파일에서는 이 정보가 82자로 줄어듭니다.

따라서 다음과 같이 출력하지 마십시오.

10484 daemon   20   0 68924 5556 2292 S  0.0  0.0   0:00.06 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -k start

... nohup.out다음과 같습니다.

10484 daemon   20   0 68924 5556 2292 S  0.0  0.0   0:00.06 /opt/CollabNet_Subv

nohup가지치기 결과를 방지하는 방법은 무엇입니까 top?

답변1

top사용해야 하는 출력 너비 -w(최대 512개 열) 를 지정하려면 매개변수를 사용해야 합니다 .

nohup top -b -c -d15 -w512 &

귀하의 버전이 top이를 지원하지 않는 경우 -w환경 변수를 사용하여 동일한 효과를 얻을 수 있습니다 COLUMNS.

COLUMNS=512 nohup top -b -c -d15 &

설명대로교활한, top이 경우 터미널에 출력이 이루어지지 않으므로 사용할 터미널 너비를 결정할 수 없으며 안전한 기본값으로 돌아갑니다.

답변2

특정 버전에서 사용해야 하는 출력을 알려주는 명시적인 방법이 없으면 top이 작업을 수행할 수 없습니다 . 내가 아는 구현에서는 top출력 너비 지정을 허용하지 않습니다.

이로 nohup인해 프로그램은 터미널 대신 일반 파일을 사용하여 실행됩니다 top.stdout

따라서 toptty 너비는 검색할 수 없으며 표준 80개 열로 대체됩니다.

관련 정보