스크립트를 종료 할 때 SIGINT가 프로세스로 전달되지 않도록 bash 스크립트에서 프로세스를 분리하려고합니다.
disown
터미널에서 직접 명령을 사용 했지만 bash에서는 disown
SIGINT가 전달되지 않습니다. 이 스크립트의 목적은 openocd를 시작한 다음 단일 호출로 gdb를 시작하는 것입니다. 스크립트가 종료되지 않으므로 (gdb가 실행 중) SIGINT는 gdb에서 openocd로 계속 전달됩니다. 이는 SIGINT가 gdb에서 정지 명령으로 사용되므로 문제입니다.
터미널에서 다음과 같이 보일 것입니다.
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
이 순서로 터미널에서 호출되면 SIGINT가 gdb에서 openocd로 전달되지 않습니다. 그러나이 동일한 호출이 bash 스크립트에서 발생한 경우 SIGINT가 전달됩니다.
도움을 주시면 감사하겠습니다.
추신 :이 문제는 OS X에 있지만 모든 유닉스 도구에 이식 가능한 도구를 사용하려고합니다.
screen
있습니까?
nohup
정답이 아닙니다. 의사 코드 또는 예제 코드를 추가하여 원하는 것을 더 정확하게 표시해야합니다.