우선순위는 백그라운드 작업 실행에 어떤 영향을 미치나요?

우선순위는 백그라운드 작업 실행에 어떤 영향을 미치나요?

내 두 가지 예는 다음과 같습니다.

echo hi &

그리고:

(echo hi &)

첫 번째는 프로세스 ID를 반환 결과(예: )로 제공하며 "[1] 5627", 우선 순위 연산자를 추가하면 제거됩니다. 무슨 일이 일어난 걸까요?

또한 우선순위를 추가하면서도 백그라운드 작업이 해당 프로세스 ID를 보고하도록 하는 방법이 있습니까?

답변1

이것은 대략직업 통제. 해당 섹션을 읽어 보십시오 man bash.

쉘의 괄호는 단순한 우선순위 연산자가 아닙니다. 그들은 새로운 (하위)쉘을 시작합니다.

일반적으로 작업 제어가 활성화된 대화형 셸에 입력합니다. 명령을 괄호로 묶으면 작업 제어 없이 하위 쉘에서 명령이 실행됩니다.

노력하다:

sleep 10&
jobs

(sleep 10&)
jobs

첫 번째 절전 모드는 jobs작업 제어가 활성화된 셸에서 시작되었기 때문에 로 나열됩니다. 두 번째는 서브쉘에 의해 시작되기 때문에 그렇지 않습니다.

관련 정보