0

There are a few questions on how to rotate the output file generated by nohup. Most of the answers say to use logrotate with the copytruncate option.

However this does not actually work -- when the rotation occurs, it creates the rotated logfiles ok but the original file is not actually truncated and further log output continues to be appended.

This also occurs if I don't use nohup and just run myscript.py >>myscript.log (so basically copytruncate seems completely useless).

What's the "right" way to do this? (If custom script is required, either Bash or Python is preferred.)

1
  • 1
    Copytruncate should work. However, the right way to do it is described in lain answer because copytruncate may be responsible of small data loss. Oct 11, 2014 at 21:03

1 Answer 1

1

The correct way to do this is to code myscript.py so that it writes to a log file rather than stdout and reacts to signals by closing and reopening it's log file.

3
  • Ok, granted. But I want to know how to do it without doing that. (The script is a third party one and is large and difficult to modify.)
    – Miral
    Oct 11, 2014 at 21:14
  • @Miral If copytruncate really doesn't work, use a named pipe
    – user9517
    Oct 11, 2014 at 21:19
  • Use your script in pipeline: 3rd_party_script.py | your_script 3rd_party_script.log
    – AnFi
    Oct 11, 2014 at 22:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .