I tried with supervisor package (4.2.5-1) and I failed to get a
rotation automatically. The configuration file is not modified so the
default values should be used by supervisord.

1. fill /var/log/supervisor/supervisord.log file under 50M:

$ ls -l /var/log/supervisor/supervisord.log
-rw-rw-rw- 1 root root 49994043 24 sept. 10:04

$ ls -lh /var/log/supervisor/supervisord.log
-rw-rw-rw- 1 root root 48M 24 sept. 10:04 /var/log/supervisor/supervisord.log

2. Restart supervisord:

$ sudo systemctl stop supervisor.service
$ sudo systemctl start supervisor.service

3. Force supervisor to write on supervisord.log with a crashing daemon:

$ for i in $(seq 1 3000); do {sudo supervisorctl start demo; sleep 10}; done

'demo' crashes everytime. The loop restarts 'demo' because otherwise
'supervisord' set 'demo' process as BACKOFF status after several
attempts. Then, supervisord does not try to restart it again (which is
probably a good strategy).

4. See results:

$ ls -la /var/log/supervisor/supervisord.log
-rw-rw-rw- 1 root root 51476910 25 sept. 09:07
$ ls -lh /var/log/supervisor/supervisord.log
-rw-rw-rw- 1 root root 50M 25 sept. 09:07 /var/log/supervisor/supervisord.log

The file is over 50M but there is no rotation:

$ sudo find /var/log -name "supervisord.log*"

'/var/log/supervisor/supervisord.log.1' does not exist.

I plan to read source code and probably raise an issue on supervisor
github repository if needed.


Reply via email to