원격으로 프로그램을 컴파일하고 실행하려고 합니다. 그러나 나는 이 작업을 화면에서 수행하고 싶고 SSH 이후에 그리드 엔진을 사용하여 다른 노드에서 이를 실행하고 싶습니다. 현재 나는 다음을 가지고 있습니다:
ssh me@server screen -R session 'qlogin; cd path; mvn options program'
기본적으로 작동하지만 터미널에 연결해야 한다는 메시지가 나타납니다. 이 기사를 읽고 ssh에 -t 옵션을 추가했습니다. 이로 인해 내 명령이 중단됩니다. SSH를 통해 로그인하고 화면이 부팅된 다음 "mvn" 명령에 대해 모르고 내 세션이 종료되는 것 같습니다.
이런 일이 발생하는 이유와 Grid Engine을 사용할 때 원격 노드의 화면 내 로컬 컴퓨터에서 작업을 올바르게 시작하는 방법을 알고 싶습니다.
답변1
-L
화면 로그를 켜는 옵션을 화면에 추가 하겠습니다 (기본값은 filename 입니다 screenlog.0
). 그러면 무슨 일이 일어나고 있는지 볼 수 있을 것입니다. 화면에서 모든 것을 실행될 하나의 프로그램(다른 명령 세트가 아닌)으로 볼 수 있기를 원하며 qlogin; cd path; mvn options program
프로그램을 실행하고 종료할 수 있는 방법은 없습니다.
또 다른 옵션은 실행 중인 명령을 스크립트에 넣는 것입니다.
#!/bin/sh
qlogin
cd path
mvn options program
screenrc 파일을 만듭니다(mysessionrc라고 가정).
# myscreenrc
#Create window 0 with title 'mvn' and run /path/to/myscript.sh
screen -t mvn 0 /path/to/myscript.sh
그런 다음 대신 ''을 실행하십시오 ssh -t me@server 'screen -R session -c mysessionrc
. FreeBSD+ssh+screen 조합에서 화면이 작동하도록 하려면 이 작업을 수행해야 했습니다.
그래도 실패하면 다음을 추가합니다.
zombie kr
verbose on
k
mysessionrc 파일의 시작 부분에 종료 또는 다시 시작을 완료한 후 실행 명령으로 무엇을 해야 하는지 화면에 묻는 메시지가 표시되고 r
자세한 내용은 화면에서 수행 중인 작업에 대한 일부 정보를 출력합니다.
답변2
내 생각엔 SSH를 통해 원격으로 명령을 실행할 때 Screen이 연결할 수 있는 터미널(pty)이 생성되지 않는 것 같습니다.