スクリーンセッションを開始し、指定された端末サイズを使用してアプリケーションを実行する方法

スクリーンセッションを開始し、指定された端末サイズを使用してアプリケーションを実行する方法

画面サイズが固定された古いアプリを使用しようとしていますが、実際にはさまざまな画面サイズに適応できません。画面コマンドでこれを行うことができるようですが、方法がわかりません。カーネルモードの切り替え、VGAフォント、最新のLCDサイズ間の愚かなことは、対話のためにシステムコンソールのサイズが実際には調整されていません。 80 x 25は私のハードウェアで禁止されているサイズです。

しかし、一部の文書では、screenを-w [lines [cols]]試みるとコマンドではないと文句を言うとscreen -w 80 25 ./runme言われています。-w私の考えでは、ドキュメントは正しく書かれておらず、実際にはtermcapエントリを説明しています。

シェルスクリプトを使用して自動起動を有効にしたいのですが、スタート画面で他のシェルスクリプトをターゲットにしたシェルスクリプトを実行するのに問題はありません。

答え1

そのコマンドを使用して固定画面サイズ内で以前のアプリを実行したいようですが、screenこれを行う方法について少し混乱しています。そうですね。これらの-wオプションは、画面サイズを設定するのではなく、端末のハードステータス行の幅を設定することです。

残念ながらscreen、デフォルトではアプリケーションに固定された画面サイズを設定する組み込み方法は提供されません。端末サイズは通常screen

この問題を解決するには、セッションsttyでアプリケーションを実行する前にコマンドを使用して端末のサイズを設定してみますscreen。以下は、このプロセスを自動化するためにシェルスクリプトを作成する方法の例です。

#!/bin/bash

# Set the terminal size to 80x25
stty rows 25 cols 80

# Start your application inside a screen session
screen -dmS myapp ./runme

# Attach to the screen session to interact with your application
screen -r myapp

このスクリプトでは:

  1. セッションを開始する前に、sttyコマンドを使用して端末サイズを80x25に設定しましたscreen

  2. screen分離モードで-dmSセッションを開始し()、名前を付け()、myapp実行するコマンドを指定します(./runme)。

  3. screen最後に、アプリケーションと対話するために使用するセッションに接続しますscreen -r myapp

このスクリプトは、レガシーアプリケーションが指定された端末サイズ内で実行されていることを確認するのに役立ちます。特定の要件に合わせてスクリプトと端末のサイズを変更することを忘れないでください。

一部のアプリケーションは、標準外の端末サイズで期待どおりに実行されない可能性があり、この方法はすべてのアプリケーションで完全に機能しない可能性があります。アプリケーションが特定の端末サイズ設定に大きく依存している場合は、代替ソリューションを探すか、端末サイズが互換性のある仮想マシンやコンテナなどのより適切な環境で実行することを検討できます。

関連情報