예를 들어, system("sh /mydir/some-script.sh &")
POSIX 시스템 (3)이 비동기 쉘 명령을 호출하면 즉시 반환됩니까?
0
A
답변
1
system("sh /mydir/some-script.sh &")
는
/bin/sh -c 'sh /mydir/some-script.sh &'
system
그것이 내부 쉘을 시작 직후됩니다 외피 반환, 즉시 반환됩니다 실행합니다. 어느 쉘도 some-script.sh
이 완료 될 때까지 기다리지 않습니다.
$ cat some-script.sh
sleep 1
echo foo
$ /bin/sh -c 'sh some-script.sh &' ; echo bar ; sleep 2
bar
foo
2
예, 셸은 스크립트를 포크하고 즉시 반환하지만 방법과 스크립트가 종료되었는지 여부를 쉽게 알 수 없습니다.
아이를, fork(2)
프로세스에 될 것 같은 비동기 명령을 실행 /bin/sh
및 스크립트의 이름으로 설정 인수 중 하나의 이진 세트와 아이에 execve(2)
를 호출하고 폴링하는 "적절한"방법 WNOHANG
옵션을 사용하는 waitpid(2)
시스템 호출을 사용하여 부모로부터 주기적으로. waitpid
이 -1을 반환하면 스크립트가 종료되었으며 반환 코드를 가져올 수 있음을 알았습니다.
사실 system(3)
은 프로세스가 종료 될 때까지 waitpid
에 대한 호출이 차단된다는 유일한 예외와 거의 동일합니다.
관련 문제
- 1. java에서 쉘 스크립트를 호출하면
- 2. 커스텀 입력으로 쉘 명령을 실행하십시오.
- 3. 루비 콘솔에서 셸 명령을 실행하면 권한 거부 오류가 반환됩니까?
- 4. PHP 비동기 읽기 (쉘 스크립팅)
- 5. '-nt'테스트의 SUS/POSIX 쉘 호환 대체
- 6. Emacs-Dired의 여러 비동기 쉘 명령?
- 7. jar에서 쉘 명령을 실행 하시겠습니까?
- 8. 공백이있는 변수로 쉘 명령을 실행하십시오.
- 9. POSIX 스레드 : pthreads_cond_wait() 및 다른 시스템 호출입니까?
- 10. iPhone 파일 시스템 사용 권한 POSIX 호환?
- 11. Perl : 쉘 환경에서 시스템 명령 실행
- 12. 쉘 스크립트에서 쉘 명령을 실행하면 오류가 발생해도 멈추지 않습니다.
- 13. 복잡한 배치 명령을 즉시 실행하는 방법
- 14. javascript에서 시스템 명령을 어떻게 실행합니까?
- 15. 왜 시스템 명령을 수행하지 않습니까?
- 16. Python에서 주어진 UID로 쉘 명령을 실행하십시오.
- 17. powershell 스크립트의 인수를 사용하여 쉘 명령을 실행하십시오.
- 18. popen()을 사용하여 쉘 명령을 호출 하시겠습니까?
- 19. VB.NET 쉘 명령을 던진 파일 예외가 발생했습니다.
- 20. C에서 쉘 명령을 실행하는 방법은 무엇입니까?
- 21. C++에서 popen을 사용하여 쉘 명령을 실행하십시오.
- 22. Windows에서 유닉스 파워 쉘 명령을 호출
- 23. 플래시 파일 내부에서 쉘 명령을 호출하십시오.
- 24. 파워 쉘 프로파일 스크립트에 명령을 실행하면
- 25. emacs lisp에서 어떤 쉘 명령을 사용합니까?
- 26. csh에서 쉘 명령을 뒤로 검색하려면 Ctrl-R
- 27. php nohup을 사용하여 여러 쉘 명령을 실행하십시오.
- 28. InstallShield 2011 시스템 컨텍스트에서 즉시 실행
- 29. php system() 명령을 통해 여러 시스템 명령을 백그라운드에서 실행 하시겠습니까?
- 30. 쉘 스크립트에서 perl을 호출하면 펄에서 쉘로 반환 값을 어떻게 전달합니까?
왜 사용해 보지 않으시겠습니까? 질문을하고 사람들이 반응하기를 기다리는 것보다 빠를 가능성이 큽니다. – jamessan