이것"화면" 창 관리자스크롤백 버퍼의 원하는 크기를 지정할 수 있습니다.
예를 들어, 새 세션을 시작할 때: (원천)
‘-h num’ Set the history scrollback buffer to be num lines high. Equivalent to the defscrollback command (see Copy).
또는 이미 화면 세션에 있는 경우 다음 명령을 사용하십시오.원천)
12.1.2 Scrollback — Command: defscrollback num Same as the scrollback command except that the default setting for new windows is changed. Defaults to 100. — Command: scrollback num Set the size of the scrollback buffer for the current window to num lines. The default scrollback is 100 lines. Use C-a i to view the current setting.
num
그러나 위 방법 중 최대값을 나타내는 문서를 찾을 수 없는 것 같습니다.
따라서 질문은 다음과 같습니다. 화면 유틸리티의 최대 스크롤백 길이를 결정하는 방법은 무엇입니까?
답변1
문서화된 내용을 어디서 찾을 수 있는지 잘 모르겠지만 소스 코드를 자세히 살펴보면 몇 가지 단서를 찾을 수 있습니다. 전달하면 -h
설정됩니다 histheight
(참조screen.c). 분석 main
은 -h
다음과 같습니다.
case 'h':
if (--argc == 0)
exit_with_usage(myname, NULL, NULL);
nwin_options.histheight = atoi(*++argv);
if (nwin_options.histheight < 0)
exit_with_usage(myname, "-h: %s: negative scrollback size?", *argv);
break;
이 구조는 다음에 정의된 nwin_options
인스턴스입니다.NewWindow
window.h:
struct NewWindow {
int StartAt; /* where to start the search for the slot */
char *aka; /* aka string */
char **args; /* argv vector */
char *dir; /* directory for chdir */
char *term; /* TERM to be set instead of "screen" */
bool aflag;
bool dynamicaka;
int flowflag;
int lflag;
int histheight;
int monitor;
int wlock; /* default writelock setting */
int silence;
bool wrap;
bool Lflag; /* logging */
int slow; /* inter character milliseconds */
int gr;
bool c1;
int bce;
int encoding;
char *hstatus;
char *charset;
int poll_zombie_timeout;
};
이것이 int라는 것을 알 수 있으므로 아마도 signed int의 최대값으로 설정할 수 있을 것입니다 histheight
.maxint
답변2
내 질문에 대답하려고 시도하면서 시행착오를 통해 내 시스템에서 찾은 내용은 다음과 같습니다.
답변: 하드 한도(50,000,000~1,000,000,000 사이)가 있지만 성능으로 인해 병목 현상이 발생할 수 있습니다(그래서 정확한 하드 한도를 결정할 수는 없습니다).
내 실험에는 다음이 포함됩니다.
구성 파일 없이 새 화면 세션을 시작합니다 ~/.screenrc
.
screen -a
ctrl화면 내에서 +를 눌러 화면 명령 프롬프트를 열고 a다음 :명령을 입력합니다.
scrollback 1000000
scrollback set to 1000000
결과는 (1,000,000) 메시지입니다 .
(1,000,000,000)을 시도 scrollback 1000000000
하고 메시지를 빠르게 받으세요 scrollback set to 0
. 나는 이것이 1,000,000이 허용되고 1,000,000,000이 너무 많다는 것을 의미한다고 생각합니다.
100000000`(100,000,000)을 시도하면 scrollback
화면이 정지됩니다. 두 번째 터미널 세션과 약간의 인내심 끝에 화면을 종료할 수 있었습니다. 이 동작은 동일한 작업을 다시 시도할 때 일관된 것으로 나타났습니다.
2초 지연 시도 scrollback 10000000
(10,000,000)는 메시지를 생성합니다 scrollback set to 10000000
.
60초 지연 시도 scrollback 50000000
(50,000,000)는 메시지를 생성합니다 scrollback set to 50000000
.