백그라운드 실행시 출력 내용 저장하기

einstrom의 이미지

안녕하세요

리눅스에서 백그라운드로 실행시 출력 내용을 저장하기 위해서 열심히 애쓰고 있습니다....

보통 오래걸리는 작업을 백그라운드로 실행하실텐데요...

find . -name '*.c' >> test.txt & 이렇게 해주고 나서 cat test.txt 하면 잘 저장이 되고 있더라구요

근데 제가 시도하는

wpa_supplicnat -i wlna0 -c wpa_supplicant.conf >> test.txt & 를 수행하면 실시간으로 저장이 되지않고

wpa_supplicant가 종료 되어야지만 test.txt에 저장이 됩니다...

그래서 printf 로 간단한 어플을 만들어 동일하게 리다이렉션을 해보니.. 역시 정상적으로 종료 되어야 지만 test.txt에 저장이 되더라구요

중간에 나오는 출력들은 어디에 저장이 되어있는건지.. 바로바로 저장된 파일을 보고 싶으면 어떻게 해야 하나요..ㅠㅠ

einstrom의 이미지

소스에서

while(1)
{
printf("test\n");
fflush(stdout);
}

다음과 같이 fflush를 사용하면 백그라운드시에도 바로바로 log를 저장하게 되는군요..
이에 대한 shell 명령어가 없는지 찾아봐야 겠군요

einstrom의 이미지


./print_test 2>&1 | tee test.txt &

바로 바로 적용이 되는군요.. 왜이렇게 해맸는지.. 음