이 명령을 입력하면
nohup CloudCompute.command &
그것은 결과를 낳는다
[1] 782
그게 내가 원하는 거야. (PID 번호 BTW입니다)
따라서 실행 파일( )에서 동일한 명령을 실행하고 .command
출력을 파일에 추가하려고 하면 작동하지 않습니다. CloudCompute.command
실행할 때 표시되는 실제 PID가 아닌 출력 내용만 인쇄합니다 . 나는 그것이 같은 디렉토리에 있다고 확신합니다.
왜 이런 일이 발생합니까? 수동으로 입력한 것과 동일한 출력을 생성하도록 실행 파일을 얻으려면 어떻게 해야 합니까?
감사해요
답변1
왜 이런 일이 발생합니까?
해당 출력은 다음과 같습니다.
[1] 782
실행 파일이 아닙니다. bash
백그라운드에서 무언가를 실행할 때 터미널에 쓰는 것입니다 . 작업 번호 와 프로세스의 [1]
PID 입니다. 782
나중에 프로세스가 완료되면 다음과 같은 내용이 표시됩니다.
[1]+ Done command
bash
이는 1번 작업의 처리가 완료되었음을 알 수 있기 때문이기도 합니다 .
백그라운드에서 명령을 실행하면 PID가 변수에 저장됩니다 $!
.
$ sleep 10 &
[1] 1234
$ echo $!
1234
수동으로 입력한 것과 동일한 출력을 생성하도록 실행 파일을 얻으려면 어떻게 해야 합니까?
따라서 실행 파일~이다동일한 출력을 생성합니다.