Почему c app не пишет в nohup.out
Я написал простую установку аварийного переключения master-slave для моих двух серверов, используя c, работающий с redhat6, который использует контрольные сигналы udp для мониторинга друг друга. В моем приложении я печатаю некоторую информацию, например, полученное сердцебиение, сервер исправен и еще кое-что. Я хочу, чтобы он работал в фоновом режиме и добавлял эти printfs в nohup.out. Итак, я выпустил ниже,
nohup ./appname &
nohup: ignoring input and appending output to nohup.out
Приложение работает в фоновом режиме, но вывод не добавляется в nohup.out. Я думал, что это буферизовано, поэтому я дал некоторое время и убил его, но nohup.out все еще пуст,
Есть мысли по этому поводу?
1 ответ
Как отметил @greg, nohup.out был буферизован. Установка размера буфера stdout в null решила это.
setbuf(stdout, NULL);