xshell에서 screen 명령을 사용하여 백그라운드 프로세스 실행

xshell에서 screen 명령을 사용하여 백그라운드 프로세스 실행

screen명령은 백그라운드에서 프로세스를 실행하는 데 좋은 프로그램이지만 Ctrl + a wxshell(Xmanager 구성 요소)에서는 화면 창 목록이 표시되지 않고 Ctrl + a k화면 터미널이 종료되지 않는 것을 발견했습니다. 그러나 Ctrl + a d분리된 세션은 작동합니다! 그렇다면 Ctrl +a w세션 나열에 어떤 문제가 있습니까?

더 심각하게 말하자면, 현재 화면 창에 있는지 일반 bash 창에 있는지 어떻게 알 수 있나요? 여러 번 스크린 세션 분리를 시도한 후 로그아웃했습니다.ctrl+a . 매우 당황스럽지 않나요? 그렇다면 내가 현재 화면 창에 있는지 아니면 그냥 일반 tty 터미널에 있는지 보여줄 수 있는 힌트가 있습니까?

답변1

^A d를 입력할 때 로그아웃했다면 컨트롤 키를 누른 상태에서 d를 눌렀을 것입니다. ^A ^D는 ^A d와 마찬가지로 "분리"되어야 합니다. ^A k 및 ^A w의 경우 k 또는 w를 누르기 전에 컨트롤 키에서 손을 떼십시오.

답변2

어쩌면 이 조합은 ^A w우선순위가 더 높은 항목에서 사용될 수도 있습니다. ^A d는 사용되지 않을 수 있으므로 로 전달됩니다 screen. 를 사용하여 다른 명령 문자를 설정해 볼 수 있습니다 -e.

^A d일반 쉘에서 로그아웃하면 안 됩니다.

제가 조언하는 바는 의심스러우면 항상 ^A w먼저 를 누르라는 것입니다 ^A d. 완전히 안전하게 만들려면 print 와 같은 셸의 키 바인딩을 사용하여 이에 반응할 수 있습니다 this is not within screen.

답변3

나 또한 이것에 속았다는 것을 깨달았다. 그 이후로 나는 항상 다음 두 줄을 다음에 추가합니다 screenrc.

hardstatus alwayslastline
hardstatus string "%{= kG}[ %{G}%H %{g}][ %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]"

화면에서 TTY의 시각적 모양을 변경합니다. 나중에는 무시할 수 없습니다.

관련 정보