![우선순위는 백그라운드 작업 실행에 어떤 영향을 미치나요?](https://linux55.com/image/71419/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%EB%8A%94%20%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%20%EC%9E%91%EC%97%85%20%EC%8B%A4%ED%96%89%EC%97%90%20%EC%96%B4%EB%96%A4%20%EC%98%81%ED%96%A5%EC%9D%84%20%EB%AF%B8%EC%B9%98%EB%82%98%EC%9A%94%3F.png)
내 두 가지 예는 다음과 같습니다.
echo hi &
그리고:
(echo hi &)
첫 번째는 프로세스 ID를 반환 결과(예: )로 제공하며 "[1] 5627"
, 우선 순위 연산자를 추가하면 제거됩니다. 무슨 일이 일어난 걸까요?
또한 우선순위를 추가하면서도 백그라운드 작업이 해당 프로세스 ID를 보고하도록 하는 방법이 있습니까?
답변1
이것은 대략직업 통제. 해당 섹션을 읽어 보십시오 man bash
.
쉘의 괄호는 단순한 우선순위 연산자가 아닙니다. 그들은 새로운 (하위)쉘을 시작합니다.
일반적으로 작업 제어가 활성화된 대화형 셸에 입력합니다. 명령을 괄호로 묶으면 작업 제어 없이 하위 쉘에서 명령이 실행됩니다.
노력하다:
sleep 10&
jobs
(sleep 10&)
jobs
첫 번째 절전 모드는 jobs
작업 제어가 활성화된 셸에서 시작되었기 때문에 로 나열됩니다. 두 번째는 서브쉘에 의해 시작되기 때문에 그렇지 않습니다.