완전한 GNU 화면 세션 상태 저장 모든 것을 다시로드 할 수 있도록 GNU

재부팅 후 모든 것을 다시로드 할 수 있도록 GNU 화면 창의 “상태”를 유지하는 것이 가능합니까?

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


답변

완전한 화면 세션을 저장할 수는 없습니다.

당신이 할 수있는 일은 .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. 화면의 기본 창을 사용자 정의 할 수 있다면 재부팅 후 깨끗한 환경에 감사하기 때문에 노력할 가치가 없습니다.


답변

screen-session 이라는 프로젝트를 우연히 발견했습니다 . GNU Screen 세션을 어느 정도 저장하고 다시로드 할 수 있습니다.


답변

cryopid 라는 프로세스의 상태를 고정시키는 도구가 있습니다 . 그러나 현재 서브 프로세스 계층 구조 재 작성을 지원하지 않으므로 GNU 화면에서는 작동하지 않습니다. 그들은 미래에 이것을 달성하기를 원하지만 프로젝트는 현재 너무 활발하지 않은 것으로 보입니다. 그럼에도 불구하고 진행 상황을 추적 할 수 있습니다.


답변

나는 몇 년 전 솔라리스에 비슷한 것을 만들었습니다. 화면 관련조차도 없습니다. 세션과 관련이있었습니다. “만약 $ TTY = 무엇이든”. echox는 올바른 아이디어를 가지고 있습니다.

팁 : 여러 시스템에서이 작업을 수행하는 경우 각 시스템은 로그인 할 때 수행해야 할 작업에 대한 자체 정의가 필요합니다. nfs 마운트 / 홈 또는 이와 유사하거나 모두 동일하지는 않습니다.

HTH, -pbr


답변