일단 제어 터미널에서 분리되면 데몬을 사용할 수 없으므로 데몬이 stdout
(및 stderr
)에 쓰지 않아야 함을 이해합니다. 하지만 내 원래 로깅을 계속 사용할 수 있도록 stdout
을 일반 파일로 다시 열 수 있습니까? 이것은 나를 위해 아주 좋고 유용 할 것입니다. 리눅스 데몬의 표준 파일로 stdout을 다시여시겠습니까?
freopen("/dev/null/", "r", stdin);
freopen("log", "w", stdout);
freopen("log", "w", stderr);
BOOST_LOG_TRIVIAL(info) << "daemonized!";
(정확히 말하면, 그것은 실패하고 종료하지 않습니다), 포크 (fork) 이후에 이런 식으로 뭔가를 시도하고 로그 파일이 생성 될 수있다. 그러나 로그는 비어 있습니다 ("daemonized!"). 이것이 대몬 비난의 올바른 방법이 아닌가? 누군가가 좀 밝힐 수 있을까요?
나는 당신이 앞에있는 이유를 가지고 있다고 생각한다. 만약 당신의'stdout'과/또는'stderr'가 터미널로 가고 있다면, 그것은 당신의 제어 터미널로 남아 있고 그것으로부터 분리하지 못한다. 내가 잘못? –