실행중인 화면 세션을 나열하는 방법은 무엇입니까?
-
22-08-2019 - |
문제
나는 많은 서버가 있는데,이를 사용하여 실험을 실행합니다. screen
. 절차는 다음과 같습니다.
ssh
서버 xxx로- 시작하다
screen
- 몇 탭에서 실험을 시작하십시오
- 분리하다
screen
- 서버에서 분리하십시오
실험이 실행되는 동안 어떤 서버인지 쉽게 찾을 수 있습니다. ssh
모든 서버에 in 및 실행중인 프로세스를 나열합니다 (사용 top
또는 ps
).
그러나 실험이 완료되면 화면 세션이 열린 서버를 어떻게 찾을 수 있습니까 (출력을 살펴보고 다시 시작하는 등)?
추신 : 내 실험은 출력도 파일에 인쇄하지만 이것은 내 질문의 요점이 아닙니다.
해결책
사용자의 모든 화면 세션을 나열하려면 다음 명령을 해당 사용자로 실행하십시오.
screen -ls
특정 컴퓨터의 모든 화면 세션을 보려면 다음을 수행 할 수 있습니다.
ls -laR /var/run/screen/
나는 이것을 내 기계에서 얻는다 :
gentle ~ # ls -laR /var/run/screen/
/var/run/screen/:
total 1
drwxrwxr-x 4 root utmp 96 Mar 1 2005 .
drwxr-xr-x 10 root root 840 Feb 1 03:10 ..
drwx------ 2 josh users 88 Jan 13 11:33 S-josh
drwx------ 2 root root 48 Feb 11 10:50 S-root
/var/run/screen/S-josh:
total 0
drwx------ 2 josh users 88 Jan 13 11:33 .
drwxrwxr-x 4 root utmp 96 Mar 1 2005 ..
prwx------ 1 josh users 0 Feb 11 10:41 12931.pts-0.gentle
/var/run/screen/S-root:
total 0
drwx------ 2 root root 48 Feb 11 10:50 .
drwxrwxr-x 4 root utmp 96 Mar 1 2005 ..
이것은 보안, 상태 및 스트림을 처리하기 위해 파일 시스템 권한으로 싸인 UNIX 소켓을 다소 훌륭하게 사용하지 않습니다.
다른 팁
명령 화면 -목록 당신이 원하는 것일 수 있습니다.
참조 남성
Joshperry의 대답이 맞지만, 화면 이름 (-t 옵션으로 설정 한 이름)을 말하지 않는다는 것이 매우 성가신 것으로 나타났습니다. 실제로 세션을 식별하는 데 사용하는 것입니다. (물론 그의 잘못이 아닙니다. 그것은 화면의 결함입니다)
그렇기 때문에 다음과 같은 스크립트를 사용하는 이유입니다. ps auxw|grep -i screen|grep -v grep
나는 당신의 질문을 확실하지 않지만, 당신이 정말로 원하는 것이 현재 열린 화면 세션을 목록에 있다면, 시도하십시오.
screen -ls
For windows system
Open putty
then login in server
콘솔에서 화면을 보려면 명령을 작성해야합니다.
Screen -ls
화면에 액세스 해야하는 경우 아래 명령을 사용해야합니다.
screen -x screen id
쓰다 PWD
현재 어떤 폴더를 확인하기위한 명령 줄에서
대부분의 경우 a screen -RRx $username/
충분할 것입니다 :)
여전히 모든 화면을 나열하려면 다음 스크립트를 경로에 넣고 화면이나 원하는대로 호출하십시오.
#!/bin/bash
if [[ "$1" != "-ls-all" ]]; then
exec /usr/bin/screen "$@"
else
shopt -s nullglob
screens=(/var/run/screen/S-*/*)
if (( ${#screens[@]} == 0 )); then
echo "no screen session found in /var/run/screen"
else
echo "${screens[@]#*S-}"
fi
fi
옵션 -LS -ALL을 첫 번째 매개 변수로 제공 할 때 모든 화면 세션을 표시하는 것을 제외하고는 화면과 똑같이 작동합니다.
여러 사람들이 이미 그것을 지적했습니다
$ screen -ls
화면 세션을 나열합니다.
여기에 유용 할 수있는 또 다른 트릭이 있습니다.
다음 명령을 마지막 줄로 추가하면 .BASHRC서버 xxx 파일은 로그인시 화면 세션에 자동으로 다시 연결됩니다.
screen -d -r
유용하다는 것을 알기를 바랍니다.
PS X | 그레프 화면
명령을 사용한 경우에 해당 화면이 무엇인지 확인하려면
화면 -a -m -d php make_something.php
따라서 화면을 사용하여 실험을 백그라운드에서 계속 실행하거나 무엇입니까? 그렇다면 백그라운드에서 시작하지 않겠습니까?
./experiment &
그리고 내가 한 작업을 알리는 방법을 묻는다면, 우편 명령과 함께 실험을하는 것은 어떻습니까?
./experiment && echo "the deed is done" | mail youruser@yourlocalworkstation -s "job on server $HOSTNAME is done"