fork()를 한후 생성된 child프로세스를 백그라운드로 돌릴수 있나요??

s4bz의 이미지


보통 fork()를 한후 생성된 child 프로세스에서

exe** 함수를 이용하여..

프로세스 대체(?)를 하여 사용하는것으로 알고 있습니다.

그런데 이렇게 했을경우 백그라운드로 실행이 되지 않는데..

백그라운드로 실행할수있는 방법이 없을까요??

wariua의 이미지

검색만이 대한민국이 살길입니다 8) 현재 http://kldp.org/ 사이트의 검색은 충분히 강력하지 못합니다만, http://bbs.kldp.org/ 사이트의 검색은 원하시는 걸 찾기에 충분하고 또 충분합니다.
----
$PWD `date`

$PWD `date`

diewelt의 이미지

제어 터미널을 떼내고 싶어하시는 것 같은데... exec() 다음에 setsid()와 fork()를 호출하면 될 듯 싶네요.

사랑천사의 이미지

좋은 예제가 될지는 모르겠지만 무한대전 머드 소스 보세요. 포크 한 다음에 어떻게 하는지, 그 전에 어떻게 하는지 나와 있습니다. 보통 stdin, stdout, stderr을 전부 닫고 그 후에 setsid로 자리를 잡게 한 뒤(아마 이거 차례가 바뀐 것 같군요.) 그 후에 fork 하시고 if문으로 부모 프로세스면 죽이고 자식 프로세스면 안 죽게 만들면 되는 거죠 뭐 음... 전 exec를 쓴 소스는 별로 못 본것 같군요.

그럼...
이여송 사도요한 드림.
----
일어나라! 싸워라! 그리고 이겨라!
다만!!! 의미 있는 것에 그 힘을!!!
그 능력과 노력을!!!

사람천사