래퍼 스크립트: 포크: 재시도: 하위 프로세스 없음

래퍼 스크립트: 포크: 재시도: 하위 프로세스 없음

"myapplication"에는 몇 가지 설정이나 정리가 필요하므로 다음 래퍼 스크립트를 사용합니다.

#!/bin/bash
echo "Do important set up stuff"
myapplication
echo "Clean up"

원래 경로보다 자동으로 우선순위를 갖도록 "myapplication"이라는 경로에 넣습니다. 이는 테스트할 때는 작동하지만 실제로 경로에 넣은 후에는 중지되어 다음 오류가 발생합니다.

/home/user/bin/myapplication: fork: retry: No child processes
[more of the same line]
/home/user/bin/myapplication: fork: retry: No child processes
/home/user/bin/myapplication: fork: Resource temporarily unavailable

또한 스크립트가 시작된 후 마지막 오류로 인해 중단되기 전에 다른 프로그램에서 동일한 오류가 발생하게 됩니다.

답변1

스크립트가 경로에 있으면 원본 프로그램을 호출해야 하는 스크립트의 줄이 스크립트를 호출하여 특정 시스템 제한에 도달할 때까지 무한 비종료 재귀를 생성합니다.

올바른 방법은 which myapplication스크립트를 PATH에 넣기 전에 myapplication 원래 실행 파일의 절대 경로를 찾은 다음 해당 경로를 사용하여 스크립트에서 myapplication을 호출하는 것입니다.

일반적으로 배워야 할 교훈은 다음과 같습니다. 이 오류는 종료되지 않는 재귀를 나타낼 수 있습니다.

관련 정보