module(..., package.seeall) require("pidof") require("split") -- we actually need root permissions to get the process list priv = {} function priv.is_enabled() return (pidof.pidof("syslogd")) end function priv.enable(opts) if opts and opts.remote then local f = io.open("/etc/conf.d/syslog", "w") if f == nil then return nil end f:write("# this file was written by and will be overwritten by acf\n") f:write("SYSLOGD_OPTS=\"-R "..opts.remote.."\"") f:close() end os.system("/etc/init.d/syslogd restart; rc_add -k -s 20 syslog") end -- this func does not need privileges function readopts() local opts = {} local line local f = io.open("/etc/conf.d/syslog", "r") if f == nil then return nil end for line in f:lines() do local optstr = string.match(line, "^SYSLOGD_OPTS=\"?(.*)\"?") if optstr then opts.remote = string.match(optstr, "-R%s*(.*)%s*.*$") opts.optstr = optstr end end return opts end