저는 개발과 서버 관리를 위해 화면을 광범위하게 사용합니다. 드물게 서버가 다시 시작되는 경우에는 screen 세션을 수동으로 다시 작성해야 하고, .screenrc
screen 세션을 자동으로 시작하는 방법도 알고 있지만 작동하게 할 수는 없었습니다. 매우 간단한 명령으로 테스트를 시도했지만 작동했지만 단일 화면 세션에서 두 개의 동일한 창을 만들었습니다. 실제로 필요한 더 복잡한 명령으로 인해 화면이 종료됩니다.
저는 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 세션 내에 두 개의 창이 생성되며, 둘 다 위의 Journalctl 명령을 실행합니다.
위 작업을 설정하면서 발생한 다른 문제는 다음과 같습니다.
화면 내에서 Python 가상 환경을 활성화하려고 할 때 오류 메시지가 나타납니다.
screenrc의 명령은 다음과 같습니다.
screen -t python3 . $HOME/my-project-dir/venv/bin/activate
화면의 오류는 다음과 같습니다.
Cannot exec '.': Permission denied
이 명령을 화면에서 실행하려고 하면
docker exec
출력 없이 화면이 종료됩니다.