it-swarm-ko.tech

저장 완료 GNU 스크린 세션 상태

재부팅 후 모든 것을 다시로드 할 수 있도록 GNU 화면 창의 (또는 표준 셸)) "상태"를 유지할 수 있습니까?

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

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

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

20
echox

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

10
BUGHUNTER

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

2
fschmitt

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

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

HTH, -pbr

0
pbr