mirror of
https://github.com/troglobit/finit.git
synced 2026-10-21 11:29:42 +00:00
Add support for global logfile max size and max num. rotated
# Max file size for each log file: 100 kiB, rotate max 4 copies:
# log => log.1 => log.2.gz => log.3.gz => log.4.gz
log size=100k count=4
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
f11ebb0046
commit
192d3aafe7
3 files changed
+33
-1
No files matched your search
+24
@@ -36,11 +36,15 @@
|
||||
#include "service.h"
|
||||
#include "tty.h"
|
||||
#include "helpers.h"
|
||||
#include "util.h"
|
||||
|
||||
#define BOOTSTRAP (runlevel == 0)
|
||||
#define MATCH_CMD(l, c, x) \
|
||||
(!strncasecmp(l, c, strlen(c)) && (x = (l) + strlen(c)))
|
||||
|
||||
int logfile_size_max = 200000; /* 200 kB */
|
||||
int logfile_count_max = 5;
|
||||
|
||||
struct rlimit global_rlimit[RLIMIT_NLIMITS];
|
||||
|
||||
struct conf_change {
|
||||
@@ -383,6 +387,26 @@ static void parse_static(char *line)
|
||||
return;
|
||||
}
|
||||
|
||||
if (MATCH_CMD(line, "log ", x)) {
|
||||
char *tok;
|
||||
static int size = 200000, count = 5;
|
||||
|
||||
tok = strtok(x, ":= ");
|
||||
while (tok) {
|
||||
if (!strncmp(tok, "size", 4))
|
||||
size = strtobytes(strtok(NULL, ":= "));
|
||||
else if (!strncmp(tok, "count", 5))
|
||||
count = strtobytes(strtok(NULL, ":= "));
|
||||
|
||||
tok = strtok(NULL, ":= ");
|
||||
}
|
||||
|
||||
if (size > 0)
|
||||
logfile_size_max = size;
|
||||
if (count >= 0)
|
||||
logfile_count_max = count;
|
||||
}
|
||||
|
||||
if (MATCH_CMD(line, "shutdown ", x)) {
|
||||
if (sdown) free(sdown);
|
||||
sdown = strdup(strip_line(x));
|
||||
|
||||
Reference in new issue
Block a user