Basically, I am running:

nohup ./executable &> /tmp/out.log &

In order to make sure the process is running I ran the command:

tail -f /tmp/out.log

But the only thing I can get from tail is "nohup: ignoring input", and once killing the process that previously started I can see the contents of out.log


Run your program as:

nohup stdbuf -oL ./executable &> /tmp/out.log &

stdbuf can change the default buffering.


Your executable is using buffered output, so you will only see something with tail if more than one block of output is produced. The size of such a block will be 4k or more.

If you wrote the executable yourself, change the output to line buffered or to not buffered.

  • +1 Or add an instruction to flush stdout ; nonetheless we cannot give a better answer to such a vague question. – Rui F Ribeiro Sep 15 '18 at 20:56
  • makes sense, the executable is from the LoRa device provider. Is there an easy workaround? thanks for the response! – 9uzman7 Sep 15 '18 at 20:59
  • You can allocate a pty and give that to the executable. Most programs use line buffered for a tty. Your program also does if you see immediate output if you run it directly from the shell. – RalfFriedl Sep 15 '18 at 21:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.