전체 GNU 화면 세션 상태 저장

전체 GNU 화면 세션 상태 저장

재부팅 후 모든 것을 다시 로드할 수 있도록 GNU 화면 창(또는 표준 셸)의 "상태"를 보존하는 것이 가능합니까?

  • 열린 껍질 수
  • 각 쉘의 이름
  • 각 쉘의 현재 디렉토리
  • 각 쉘의 역사
  • 가능하다면 환경 변수

답변1

전체 화면 세션을 저장하는 것은 사실상 불가능합니다.

당신이 할 수 있는 일은 .screenrc시스템을 다시 시작한 후 몇 가지 사항을 설정하는 적절한 파일을 만드는 것입니다.

귀하가 나열한 내용에 대한 몇 가지 의견은 다음과 같습니다.

  • 열린 껍질 수
  • 각 쉘의 이름
  • 각 쉘의 현재 디렉토리

시작 시 .screenrc특정 셸을 열 려면 다음과 같은 것을 사용합니다.

## set the default shell
shell                   zsh

# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]

창 이름으로 '' 사이에 문자열이 표시되고 이름 뒤의 명령은 기본 셸에서 실행됩니다. 특정 디렉터리 변경, 일부 로그 켜기 등 원하는 스크립트를 포함하세요.

  • 각 쉘의 역사

세션 내에서 셸 기록을 공유하는 것을 고려해 보셨나요? IMHO 이렇게 하면 일이 더 쉬워집니다. ZSH에서는 모든 setopt SHARE_HISTORY작업이 완료됩니다..zshrc

  • 가능하다면 환경 변수

이것이 정말로 필요하고 어떤 절충점도 만들고 싶지 않다면 화면의 현재 상태를 읽고 쉘 수, 환경 변수 등을 저장하고 해당 정보를 호출하는 시작 스크립트입니다 .screenrc. 나에게는 화면의 기본 창을 사용자 정의할 수 있다면 재부팅 후 깨끗한 환경을 좋아하기 때문에 노력할 가치가 없습니다.

답변2

우연히 이라는 프로그램을 발견했습니다.스크린 세션. GNU Screen 세션을 어느 정도 저장하고 다시 로드할 수 있습니다.

답변3

라는 프로세스의 상태를 고정할 수 있는 도구가 있습니다.냉각제. 그러나 현재는 하위 프로세스 계층 구조 재생성을 지원하지 않으므로 GNU 화면에서는 작동하지 않습니다. 그들은 미래에 이런 일이 일어나기를 희망한다고 말하지만, 현재로서는 프로젝트가 그다지 활발하게 진행되지 않는 것 같습니다. 그럼에도 불구하고 진행 상황을 추적하고 싶을 수도 있습니다.

답변4

나는 몇 년 전에 솔라리스에서 비슷한 것을 만들었습니다. 그것은 화면에 관한 것이 아니라 세션에 관한 것입니다. "$TTY = 무엇이든". echox의 생각은 옳습니다.

팁: 여러 시스템에서 이 작업을 수행하는 경우 마운트된 /home 또는 유사한 nfs를 기반으로 동일한 정의를 갖는 대신 각 시스템이 로그인 시 수행해야 하는 작업에 대한 고유한 정의를 가져야 한다는 점을 인식하십시오.

HTH, -pbr

관련 정보