사용자가 로그아웃한 후 포그라운드에서 작업을 실행할 수 있습니까?

사용자가 로그아웃한 후 포그라운드에서 작업을 실행할 수 있습니까?

터미널(또는 포그라운드)에 연결해야 하는 실행해야 할 작업이 있습니다. 작업은 원격 서버에서 실행되며 사용자가 로그아웃한 후에도 계속 실행되어야 합니다. VNC 서버에 대해 알고 있지만 redhat이 문제를 해결할 수 있는 내장 도구가 있는지 알고 싶습니다 . (즉, 추가 소프트웨어를 설치할 sudo가 없습니다.)

답변1

GNU 화면이것이 당신이 찾고 있는 것입니다. 내가 사용한 모든 *nix 시스템에 사전 설치되어 있으므로 Red Hat에 설치해야 합니다. screen터미널 클라이언트에 연결하고 분리할 수 있는 터미널 서버 역할을 합니다. 이는 동일한 터미널 세션을 동시에 보는 여러 클라이언트, 여러 탭, (수평) 분할 화면, (다른 클라이언트로부터의) 원격 분리 등과 같은 흥미로운 가능성을 허용합니다.

SSH 연결이 예기치 않게 중단되면 이전에 실행한 명령은 이에 대해 인식하지 못하고 계속해서 정상적으로 실행됩니다. 화면 내 10개의 서로 다른 탭에서 10개의 서로 다른 프로그램이 실행될 수 있으며 모두 계속 실행됩니다. 그런 다음 동일한 명령의 몇 가지 다른 변형을 사용하여 (로그인 후) 다시 연결할 수 있습니다. 제가 사용하는 명령은 다음과 같습니다.

 screen -RD

이는 이전 화면 세션을 현재 터미널에 다시 연결하고 IIRC가 여전히 연결되어 있는 다른 클라이언트를 분리하는 것을 의미합니다.

screen세션에 있을 때 에 명령을 보내려면 기본적으로 창을 만들거나 닫는 등 다른 문자를 누르기 전에 "Ctrl+a" 접두사를 사용할 수 있습니다. 화면이 많아요컨닝 지물론 온라인에는 필요할 경우 더 많은 정보가 담긴 매뉴얼 페이지가 항상 있습니다.


화면은 오랫동안 사용되어 왔기 때문에 새로운 대안이 있습니다. 나는 다음으로 전환한다멀티플렉서1년 전쯤에는 뒤돌아볼 일이 없었습니다. 컴파일이 필요할 수 있지만 수직 분할 화면이 가능하다는 점이 제가 좋아하는 주된 이유입니다.


그러나 위의 솔루션은 귀하의 질문을 구걸합니다. 아직 계획을 시작하지 않았다면 솔루션이 있습니다. screen또는 세션 tmux에서 생성 되지 않은 장기 실행 프로그램이 있는 경우 에도 다시 시작할 수 있습니다. AFAIK, 명령줄 기록을 복원할 수는 없지만 프로세스에 대한 제어권을 다시 얻을 수 있습니다. 제가 이때 사용하는 프로그램은reptyr, Mac OSX 및 Debian Linux 버전에서 성공적으로 빌드하고 사용했습니다. IIRC를 실행하려면 sudo 권한이 필요합니다.

답변2

"숨겨진" 전면 터미널을 시작하려면:

ssh server.com -t screen -S 애플리케이션 이름 [/usr/bin/executable]

분리(숨기기): CTRL+AD
연결(복원): ssh server.com -t screen -r applicationName

관련 정보