2011-06-13 6 views
4

나는 백그라운드 프로세스로 실행 만들 것 인수의 다른 세트와 함께 그 자체로 떠들썩한 파티 스크립트를 호출 할 필요가, 그래서 나는 같은 것을 사용하고 있습니다 :은 그 자체로 떠들썩한 파티 스크립트를 호출

if [[ $a == $b ]] 
then 
    $0 -v &> /dev/null 
fi 

문제 '&'을 접미사로 사용하고 모든 출력을/dev/null로 리디렉션하는 백그라운드 프로세스와 동일한 스크립트를 호출하지만 스크립트를 호출하는 터미널이 해제되지 않았기 때문에 스크립트 때문에 처음에는 호출 된 프로세스가 포 그라운드 프로세스로 실행 중이므로 쿼리는 bash 스크립트를 호출하여 자체적으로 첫 번째 시간 동안 스크립트를 실행하는 프로세스를 호출 할 때 호출하는 방법입니다 e가 종료되고 콘솔이 해제되고 자체에 대한 두 번째 호출이 백그라운드 프로세스로 실행됩니까?

답변

13

&을 사용하는 백그라운드 프로세스로 실행하지 않습니다. &>은 stdout과 stderr를 동시에 리디렉션하는 완전히 별개의 토큰입니다. 이 명령을 백그라운드에 넣으려면 $0 -v &>/dev/null &이됩니다. 이 같은

4

시도 뭔가 : nohup 명령은 백그라운드 작업을 분리하고 신호를 무시하는 일을

nohup $0 -v & 

매뉴얼 페이지를 참조하십시오.

+0

당신의 대답이 잘못되었다고해서 OP &>에 설명하면 당신의 대답이 더 좋을 것이라고 생각합니다. 그 명령에 대한 당신의 대답은 너무 좋습니다. 아마도 stdout을 가져야하고 stderr도/dev/null로 리디렉션되어야합니다. – Jasonw

관련 문제