これ「画面」ウィンドウマネージャスクロールバックバッファの希望のサイズを指定できます。
たとえば、新しいセッションを開始したとき:(源泉)
‘-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番目のターミナルセッションと少し忍耐の終わりに画面を終了することができました。この動作は、同じ操作を再試行すると一貫していることがわかりました。
2秒の遅延試行scrollback 10000000
(10,000,000)はメッセージを生成しますscrollback set to 10000000
。
60秒の遅延試行scrollback 50000000
(50,000,000)はメッセージを生成しますscrollback set to 50000000
。