이 가이드에서 우리는 간단하지만 중요한 개념을 조명할 것입니다. Linux 시스템에서 프로세스 처리, 그것은 제어 터미널에서 프로세스를 완전히 분리하는 방법입니다.
프로세스가 터미널과 연결되면 두 가지 문제가 발생할 수 있습니다.
이 두 가지 문제를 처리하려면 제어 터미널에서 프로세스를 완전히 분리해야 합니다. 문제를 해결하기 위해 실제로 이동하기 전에 백그라운드에서 프로세스를 실행하는 방법을 간략하게 살펴보겠습니다.
프로세스가 이미 실행 중인 경우(예: tar 명령 예 아래에서 간단히 Ctrl+Z
중지하려면 명령을 입력하십시오 bg
백그라운드에서 작업으로 실행을 계속합니다.
다음을 입력하여 모든 백그라운드 작업을 볼 수 있습니다. 직업
. 그러나 그 표준 입력, 표준 출력, 표준 오류 여전히 터미널에 연결되어 있습니다.
$ tar -czf home.tar.gz. $ bg. $ 일자리.
앰퍼샌드를 사용하여 백그라운드에서 직접 프로세스를 실행할 수도 있습니다. &
징후.
$ tar -czf home.tar.gz. & $ 일자리.
아래의 예를 살펴보십시오. 타르 명령 백그라운드 작업으로 시작되었지만 프로세스가 여전히 제어 터미널에 연결되어 있음을 의미하는 오류 메시지가 여전히 터미널로 전송되었습니다.
$ tar -czf home.tar.gz. & $ 일자리.
우리는 사용할 것입니다 자기 것이 아니라고 말하다 이 명령은 프로세스가 시작되고 백그라운드에 배치된 후에 사용됩니다. 이 작업은 셸의 활성 목록 작업에서 셸 작업을 제거하는 것이므로 사용하지 않습니다. fg
, bg
더 이상 특정 작업에 대한 명령.
또한 제어 터미널을 닫을 때 작업이 중단되거나 전송되지 않습니다. 시업 모든 하위 작업에.
추천 읽기:원격 SSH 세션 및 프로세스를 계속 실행하는 5가지 방법
아래의 사용 예를 살펴보겠습니다. 거절하다 bash 내장 함수.
$ sudo rsync 템플릿/* /var/www/html/files/ & $ 일자리. $ 부인 -h %1. $ 일자리.
당신은 또한 사용할 수 있습니다 노헿
또한 사용자가 셸을 종료할 때 프로세스가 백그라운드에서 계속 실행되도록 하는 명령입니다.
$ nohup tar -czf iso.tar.gz 템플릿/* & $ 일자리.
따라서 제어 터미널에서 프로세스를 완전히 분리하려면 아래 명령 형식을 사용하는 것이 그래픽 사용자 인터페이스(GUI) 파이어폭스와 같은 애플리케이션:
$ 파이어폭스 /dev/null &
리눅스에서는 /dev/null 기록된 모든 데이터를 기록(제거)하는 특수 장치 파일입니다. 위의 명령에서 입력을 읽고 출력을 다음으로 보냅니다. /dev/null.
추천 읽기:터미널 세션을 분리하기 위한 10가지 화면 명령 예
결론적으로 프로세스가 제어 터미널에 연결되어 있으면 사용자로서 터미널에 오류 메시지와 함께 프로세스 데이터의 여러 출력 라인이 표시됩니다. 다시 말하지만 제어 터미널을 닫으면 프로세스와 자식 프로세스가 종료됩니다.
중요한 것은 주제에 대한 질문이나 의견이 있는 경우 아래의 의견 양식을 사용하여 저희에게 연락한다는 것입니다.