私は開発とサーバー管理のために画面を広く使用しています。まれにサーバーが再起動した場合は、screenセッションを手動で再作成する必要があり、.screenrc
screenセッションを自動的に開始する方法もわかっていますが、それを機能させることはできませんでした。非常に単純なコマンドでテストしようとしましたが、うまくいきましたが、単一の画面セッションで2つの同じウィンドウを作成しました。実際に必要なより複雑なコマンドにより、画面が終了します。
私はUbuntu 20.04.2サーバーを使用しています。Screen version 4.08.00 (GNU) 05-Feb-20
私の.screenrc
ファイルはシンプルで修正されたバージョンです。この回答。
# don't display the copyright page
startup_message off
# increase scrollback buffer size
defscrollback 10000
# create windows
screen -t test1 ls $HOME/
ただし、端末に入力するsource .screenrc
だけで、次のような出力が表示されます。これは、私の画面バージョンが私が要求している操作を知らないことを示します。screen
~$ source .screenrc
startup_message: command not found
defscrollback: command not found
[screen is terminating]
screenを使用するときは、毎回次の操作を実行するように手動で設定しました。
- Journalctlで特定のサービスを追跡する
- 仮想環境でPythonのIDLEを開く
- 特定のディレクトリのテールログファイル
docker exec
コンテナでシェルを開くコマンドの実行
.screenrc
特定のサービスファイルを追跡するために次の.screenrcエントリを使用するように変更したとき...
screen -t journalctl journalctl -u my-service-name.service -b -n 100 -f
Screenは実行されますが、screenセッション内に2つのウィンドウが作成され、両方とも上記のJournalctlコマンドを実行します。
上記のタスクを設定したときに発生した他の問題は次のとおりです。
画面内でPython仮想環境を有効にしようとすると、エラーメッセージが表示されます。
screenrcのコマンドは次のとおりです。
screen -t python3 . $HOME/my-project-dir/venv/bin/activate
画面のエラーは次のとおりです。
Cannot exec '.': Permission denied
このコマンドを画面で実行しようとすると、
docker exec
出力なしで画面が終了します。