백 스테이지 진행 상황 을 천천히 이야기 하 다.
1. 한 마디 로 요약
, shell ,
2. 자세히 말 하기
, I/O : I/O; ( ) I/O。Windows I/O 。 Linux epoll , AIO ( )。
2. Why: 왜 프로 세 스 를 배경 에서 실행 시 켜 야 합 니까? 무엇 을 할 수 있 습 니까?
원 격 리 눅 스 서버 에 ssh 로 로그 인하 여 시간 이 오래 걸 리 는 작업 을 실 행 했 으 나 네트워크 등의 불안정 으로 작업 이 중간 에 실 패 했 습 니 다.사용자 가 로그아웃 (logout) 하거나 네트워크 가 끊 겼 을 때 터미널 에서 HUP (hangup) 신 호 를 받 아 모든 하위 프로 세 스 를 닫 기 때 문 입 니 다.해결 방법 은 두 가지 가 있 습 니 다. 프로 세 스 가 HUP 신 호 를 무시 하거나 프로 세 스 를 새 세 션 에서 실행 시 켜 이 터미널 에 속 하지 않 는 하위 프로 세 스 가 되도록 합 니 다.
어떻게
Linux 실행 및 제어 배경 프로 세 스 는 몇 가지 방법 이 있 습 니 다: nohup, setsid, &, disown, screen
다음은 Linux 에서 백 엔 드 프로 세 스 를 실행 하고 제어 하 는 여러 가지 방법 에 대한 소개 입 니 다. 1. nohup 은 말 그대로 nohup 의 용 도 는 제출 한 명령 이 모든 hangup 신 호 를 무시 하 는 것 입 니 다.사용법: nohup COMMAND [ARG]...
2. setsid 는 새 세 션 에서 명령 을 실행 하여 현재 터미널 에서 보 내 는 HUP 신 호 를 피 할 수 있 습 니 다.사용법: setsid COMMAND [ARG]...
3. & 결합 () 하여 새 하위 셸 을 만 들 고 이 하위 셸 에서 작업 을 배경 으로 실행 하여 현재 셸 터미널 의 HUP 신호 에 영향 을 받 지 않 습 니 다.사용법: (COMMAND [ARG]... &)
그리고 제 일반적인 사용 방식 은 nohup./filename. sh > filename. log 2 > & 1 & nohup./filename. sh & > filename. log & 세 가지 이유 입 니 다. 1) nohup 보장 프로 세 스 가 hangup 신호 에 이상 하 게 중단 되 지 않 습 니 다.2) 현재 터미널 을 차지 하지 않 고 작업 을 배경 으로 실행 합 니 다.3) 오류 출력 도 log 에 출력 합 니 다. 기본 > 표준 출력 만 있 고 오류 출력 은 없습니다.
4. 제어 프로 세 스 는 다음 명령 을 통 해 백 엔 드 에 넣 는 명령 을 제어 할 수 있 습 니 다.
현재 터미널 의 배경 프로 세 스 보기: 직접 실행: jobs
보 이 는 백 엔 드 프로 세 스 를 프론트 에 놓 습 니 다. 직접 입력: fg {jobid}//여기 {jobid} 은 jobs 명령 을 통 해 보 이 는 프로 세 스 앞 [] 의 숫자 입 니 다.
현재 프론트 데스크 톱 에서 실행 중인 프로 세 스 를 배경 으로 실행 합 니 다. 단축 키 를 먼저 두 드 립 니 다: ctrl + z/현재 실행 중인 프로 세 스 를 중단 합 니 다.재 실행: bg
현재 프론트 데스크 에서 실행 중인 프로 세 스 를 종료 합 니 다: 단축 키 를 직접 두 드 립 니 다: ctrl + c
5. disown 소 잃 고 외양간 고치 기, nohup 과 setsid 를 사용 하지 않 은 프로 세 스 에 HUP 신 호 를 무시 하 는 기능.사용 방법: 현재 프론트 데스크 톱 에서 실행 중인 프로 세 스 를 백 엔 드 로 실행 합 니 다.그리고 disown - h% {jobid}//여기 {jobid} 을 실행 하 는 것 은 jobs 명령 을 통 해 보 이 는 프로 세 스 전 [] 의 숫자 입 니 다.
6. screen 을 통 해 안정 적 인 백 엔 드 실행 screen 은 새 전체 화면 가상 세 션 단말 기 를 만 드 는 것 입 니 다. 이 세 션 은 exit 를 수 동 으로 입력 할 때 만 종 료 됩 니 다. 이 세 션 에서 실행 되 는 명령 은 HUP 신호 가 우리 의 프로 세 스에 영향 을 미 칠 까 봐 걱정 하지 않 아 도 됩 니 다. 따라서 모든 명령 에 'nohup' 이나 'setsid' 를 추가 하지 않 아 도 됩 니 다.우리 가 계획 적 으로 대량의 백 스테이지 임 무 를 수행 하 는 데 매우 적합 하고 우리 로 하여 금 이러한 백 스테이지 임 무 를 관리 하 게 할 수 있다.
사용 방법: screen//즉시 세 션 을 만 들 고 들 어 갑 니 다.screen - dmS {name}/차단 모드 에 있 는 세 션 을 만 들 고 필요 에 따라 세 션 이름 을 지정 합 니 다.screen - list//모든 세 션 을 보 여 줍 니 다.screen - r {name}/지정 한 세 션 에 독점 적 으로 들 어 갑 니 다.screen - x {name}/지정 한 세 션 에 병렬 로 들 어 갑 니 다.ctrl + ad//단축 키 ctrl + a 와 d 를 입력 하면 현재 세 션 을 잠시 종료 할 수 있 습 니 다.exit//지정 한 세 션 에 들 어간 후 exit 를 실행 하면 이 세 션 을 닫 을 수 있 습 니 다.
참고
Linux 실행 및 제어 배경 프로 세 스 방법:http://heylinux.com/archives/1282.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.