Skip to main content
Version: 4.0 (Archived) đŸ“Ļ

LogRotate

SRS always writes log to a single log file srs.log, so it will become very larger. We can use rotate the log to zip or remove it.

  1. First, move the log file to another tmp log file:mv objs/srs.log /tmp/srs.`date +%s`.log
  2. Then, send signal to SRS. SRS will close the previous file fd and reopen the log file:killall -s SIGUSR1
  3. Finally, zip or remove the tmp log file.

Use logrotate

Recommend to use logrotate to manage log files.

  1. Install logrotate:
sudo yum install -y logrotate
  1. Config logrotate to manage SRS log file:
cat << END > /etc/logrotate.d/srs
/usr/local/srs/objs/srs.log {
    daily
    dateext
    compress
    rotate 7
    size 1024M
    sharedscripts
    postrotate
        kill -USR1 \`cat /usr/local/srs/objs/srs.pid\`
    endscript
}
END

Note: Run logrotate manually by logrotate -f /etc/logrotate.d/srs

CopyTruncate

For SRS2, we could use copytruncate, but it's strongly not recommended because the logs maybe dropped, so it's only a workaround for server not supported SIGUSR1 such as SRS2.

Yes, SRS3 surely supports copytruncate and it's not recommended.

The config is bellow, from PR#1561 by wnpllrzodiac:

cat << END > /etc/logrotate.d/srs
/usr/local/srs/objs/srs.log {
    daily
    dateext
    compress
    rotate 7
    size 1024M
    copytruncate
}
END

Winlin 2016.12