백그라운드 프로 세 스

4508 단어 linux
배경 프로 세 스 가 실행 되 는 몇 가지 방식:
http://seanlook.com/2014/02/20/linux-process-running-background-screen/
Ctrl+z/bg/nohup/setsid/&
Linux 에서 프로 세 스 를 배경 에서 실행 시 키 려 면 일반적인 상황 에서 명령 뒤에 & 를 추가 하면 됩 니 다. 실제로 명령 을 작업 대기 열 에 넣 는 것 입 니 다.
1
2
# ./rsync.sh &
# jobs

프론트 데스크 에서 실 행 된 명령 에 대해 서 는 백 엔 드 로 다시 실행 할 수 있 습 니 다. 먼저 ctrl + z 를 누 르 면 실 행 된 프로 세 스 를 중단 한 다음 bg 명령 을 사용 하여 중 단 된 작업 을 백 엔 드 로 실행 합 니 다. bg %1 프론트 데스크 에 놓 고 실행 합 니 다. %1그러나 위 에서 배경 으로 실행 되 는 프로 세 스 와 같이 부모 프로 세 스 는 현재 터미널 셸 의 프로 세 스 입 니 다. 부모 프로 세 스 가 종료 되면 모든 하위 프로 세 스 에 hangup 신 호 를 보 내 고 하위 프로 세 스 는 hangup 을 받 은 후에 도 종 료 됩 니 다.셸 을 종료 할 때 프로 세 스 를 계속 실행 하려 면 nohup hangup 신 호 를 무시 하거나 setsid 부모 프로 세 스 를 init 프로 세 스 (프로 세 스 번호 1) 로 설정 해 야 합 니 다.
1
2
3
4
5
6
# nohup ./rsync.sh &

# setsid ./rsync.sh &
 
# (./rsync.sh &)        ////   subshell   
# ps -ef|grep rsync

nohup 의 용 도 는 제출 한 명령 이 hangup 신 호 를 무시 하 게 하 는 것 입 니 다. 표준 출력 과 표준 오류 가 부족 하면 nohup. out 파일 로 재 설정 합 니 다.일반적으로 우 리 는 끝 에 '&' 를 추가 하여 명령 을 배경 에 동시에 넣 고 실행 할 수 있 으 며, '> log. out 2 > & 1' 로 결 성 된 파일 이름 을 변경 할 수 있 습 니 다.
위의 시험 은 nohup / setsid 를 사용 하여 프로 세 스 를 배경 에서 실행 시 키 는 동시에 현재 셸 이 종료 하 는 영향 을 받 지 않 는 다 는 것 을 보 여 주 었 습 니 다.그럼 배경 에서 실행 중인 프로 세 스에 대해 서 는 어떻게 해 야 하나 요?사용 가능 disown 명령:
1
2
3
# jobs
# disown -h %1
# ps -ef|grep rsync

효 과 는 setid 와 같 지만 disown 이후 jobs 명령 을 통 해 볼 수 없습니다.
screen
또 하나의 더 강력 한 방법 은 screen 을 사용 하 는 것 입 니 다. 먼저 차단 모드 의 가상 단말 기 를 만 든 다음 -r 옵션 으로 이 가상 단말 기 를 다시 연결 하 는 것 입 니 다. 그 중에서 실 행 된 모든 명령 은 nohup 의 효 과 를 얻 을 수 있 습 니 다. 이것 은 여러 명령 이 배경 에서 연속 으로 실 행 될 때 편리 합 니 다.
GNU Screen 은 명령 행 터미널 전환 을 위 한 자유 소프트웨어 로 GNU 가 개발 할 계획 이다.사용 자 는 이 소프트웨어 를 통 해 여러 로 컬 이나 원 격 명령 행 세 션 을 동시에 연결 하고 그 사이 에 자 유 롭 게 전환 할 수 있 으 며 창 관리자 의 명령 행 인터페이스 버 전 으로 볼 수 있 습 니 다.그것 은 여러 세 션 을 통일 적 으로 관리 하 는 인터페이스 와 해당 하 는 기능 을 제공 합 니 다.
1
# yum install screen -y

상용 화면 매개 변수:
1
2
3
4
5
6
7
8
# screen -S docker-d          docker-d session,     
# screen -dmS docker-d        docker-d session,     ,          
# screen -ls                  session
# screen -r docker-d       zhouxiao  session,          (-d        )
# screen -x docker-d              (       )

# screen ./rsync.sh     screen              ,  attach  ID
# screen -wipe                 screen  ,          screen  

정상 적 인 상황 에서 마지막 프로그램 (보통 bash) 을 종료 하면 이 창 은 닫 힙 니 다.또 다른 창 을 닫 는 방법 은 C - a k 를 사용 하 는 것 입 니 다. 이 단축 키 는 현재 창 을 죽 이 는 동시에 이 창 에서 실행 중인 프로 세 스 를 죽 입 니 다.
모든 screen session 에서 모든 명령 은 ctrl + a (C - a) 로 시작 합 니 다.
1
2
3
C-a w            
C-a k                ,                  。 
C-a d    detach,      session

알 아야 할 것 은 한 사용자 가 만 든 screen, 다른 사용자 (심지어 root) 가 screen -ls 를 통 해 보이 지 않 는 다 는 것 이다.또한 Ctrl+a bash 아래 에 서 는 줄 의 시작 으로 돌아 가 불행 하 게 도 위의 조합 단축 키 와 충돌 했다.
위 에 서 는 기본 적 인 용법 일 뿐 이 며, 더 많은 것 은 man screen 또는 Liux screen 명령 을 참고 하 시기 바 랍 니 다.

좋은 웹페이지 즐겨찾기