bash: 새 프로세스 PID 메시지 비활성화

bash: 새 프로세스 PID 메시지 비활성화

다음과 같이 보일 수 있습니다: [2] 2847. 첫 번째 숫자는 쉘에서 생성된 프로세스의 열거일 뿐이라고 생각합니다. 두 번째는 PID입니다. 어쨌든 나는 이러한 메시지에 대해 전혀 신경 쓰지 않았기 때문에 그것을 보는 것이 짜증납니다. 끄는 방법이 있나요? (프로세스 종료 메시지가 set +bm비활성화된 것을 발견했습니다 .bashrc.)

답변1

첫 번째 숫자는 위치 인덱스입니다. 작업 관련 명령( jobsfg)이 사용됩니다. 예를 들어, 출력을 받으면 작업을 포그라운드로 [2] 2847실행할 수 있습니다 .fg 2

소스 코드를 찾아보니 메시지를 비활성화할 수 있는 방법이 없습니다. 수행하는 검사 중 하나는 셸이 대화형인지 확인하는 것입니다. 따라서 비대화형 셸에서 명령을 실행하면 해당 출력을 얻을 수 없습니다. 예를 들어, 서브셸에서 실행할 수 있습니다:

$ (your_command &)

이는 완전히 다른 셸에서 명령을 실행하는 것과 동일하므로 다른 바람직하지 않은 부작용이 있을 수 있습니다.

수정하려는 경우 bash해당 특정 출력을 제거할 수 있습니다. Bash 4.2에서는 jobs.c온라인 입니다 1428.

fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid);

다른 경우에는 호출됩니다. 이 특별한 경우에만 사라지기를 원하는 경우 다음 execute_cmd.c줄을 주석 처리할 수 있습니다 762.

DESCRIBE_PID (last_made_pid);

관련 정보