sh에서 원래 프로세스와 다른 프로세스를 실행하는 방법을 테스트하고 있습니다. 나는 이미 자식 프로세스를 스폰하기 위해 &이 사용되었다고 들었습니다. 프로그램을 호출하여,이 경우에는 glxgears입니다. STDOUT이 너무 많아서 (그래서 출력이 어디로가는 지 테스트 할 수 있습니다.) 백틱을 사용합니다.Bourne Shell (또는 csh)에서 완전히 분리 된 프로세스를 생성하는 데 사용할 수있는 것
는glxgears&
는
는
`glxgears`&
이
comp:~ user$ `glxgears`&
[1] 14511
comp:~ user$ X connection to /tmp/launch-dZalNv/org.x:0 broken (explicit kill or server shutdown).
[1]+ Exit 1 `glxgears`
comp:~ user$
원인이 어디 [1] 14511
적절한 프로세스 시작에 불과 통지 것을 받아 현재 쉘에서 출력을 유지하지만, 어떻게하지 않습니다 X 서버 여전히 내 쉘에서 출력을 덤프 할 수 있습니까? 내가 시작했습니다 경우 왜 별도의 프로세스가
[1]+ Exit 1 `glxgears`
가 표시인가? 쉘은 절대로 다른 닫는 프로세스를 경고하지 않습니다!
쉘이 닫힌 후에도 내 쉘의 PID로 남아있는 프로세스 그룹과 관련이 있다고 추측했습니다. 다른 모든 프로세스에는 자체 프로세스 그룹이 있습니다. 심지어
`glxgears&`&
프로세스 그룹으로 원래의 쉘의 PID를 유지
를 사용!나는 어떤 종류의 출력도 시작 셸에 어떤 관련도없이 프로그램 (이 경우 glxgears)을 실행할 수 있기를 원합니다.
또한 X 서버가 내 시작 프로세스를 보낼 수있는 이유를 설명 할 수 있으면 매우 높이 평가할 수 있습니다.
제쳐두고, 그건 당신이 백틱을 사용하는 것이 아닙니다.프로세스가 일부 출력을 생성하면 쉘은 실행할 첫 번째 단어를 명령 이름으로 사용하려고 시도합니다. 보라 :'\'echo moo \''-> sh : moo : 명령을 찾을 수 없다. – tripleee