mdev: add syslog logging mode
If mdev is run as daemon it should be possible to forward the debug messages to syslog. This feature might be useful if mdev is run with -s during boot too. OTOH it makes no sense for the daemon to log to mdev.log. This can be handled by a syslog daemon way better. If the daemon stays in the foreground due to -f, the messages are still written to stderr as before. Signed-off-by: Jan Klötzke <jan@kloetzke.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
d560030548
commit
e9003caf6d
@ -80,7 +80,7 @@
|
||||
//kbuild:lib-$(CONFIG_MDEV) += mdev.o
|
||||
|
||||
//usage:#define mdev_trivial_usage
|
||||
//usage: "[-s]" IF_FEATURE_MDEV_DAEMON(" | [-df]")
|
||||
//usage: "[-S] " IF_FEATURE_MDEV_DAEMON("[") "[-s]" IF_FEATURE_MDEV_DAEMON(" | [-df]]")
|
||||
//usage:#define mdev_full_usage "\n\n"
|
||||
//usage: "mdev -s is to be run during boot to scan /sys and populate /dev.\n"
|
||||
//usage: IF_FEATURE_MDEV_DAEMON(
|
||||
@ -88,6 +88,9 @@
|
||||
//usage: " -f: stay in foreground.\n"
|
||||
//usage: )
|
||||
//usage: "\n"
|
||||
//usage: "optional arguments:\n"
|
||||
//usage: " -S: Log to syslog too\n"
|
||||
//usage: "\n"
|
||||
//usage: "Bare mdev is a kernel hotplug helper. To activate it:\n"
|
||||
//usage: " echo /sbin/mdev >/proc/sys/kernel/hotplug\n"
|
||||
//usage: IF_FEATURE_MDEV_CONF(
|
||||
@ -113,6 +116,7 @@
|
||||
#include "common_bufsiz.h"
|
||||
#include "xregex.h"
|
||||
#include <linux/netlink.h>
|
||||
#include <syslog.h>
|
||||
|
||||
/* "mdev -s" scans /sys/class/xxx, looking for directories which have dev
|
||||
* file (it is of the form "M:m\n"). Example: /sys/class/tty/tty0/dev
|
||||
@ -1237,8 +1241,9 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
enum {
|
||||
MDEV_OPT_SCAN = 1 << 0,
|
||||
MDEV_OPT_DAEMON = 1 << 1,
|
||||
MDEV_OPT_FOREGROUND = 1 << 2,
|
||||
MDEV_OPT_SYSLOG = 1 << 1,
|
||||
MDEV_OPT_DAEMON = 1 << 2,
|
||||
MDEV_OPT_FOREGROUND = 1 << 3,
|
||||
};
|
||||
int opt;
|
||||
RESERVE_CONFIG_BUFFER(temp, PATH_MAX + SCRATCH_SIZE);
|
||||
@ -1254,7 +1259,7 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
xchdir("/dev");
|
||||
|
||||
opt = getopt32(argv, "s" IF_FEATURE_MDEV_DAEMON("df"));
|
||||
opt = getopt32(argv, "sS" IF_FEATURE_MDEV_DAEMON("df"));
|
||||
|
||||
#if ENABLE_FEATURE_MDEV_CONF
|
||||
G.filename = "/etc/mdev.conf";
|
||||
@ -1264,8 +1269,17 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (opt & MDEV_OPT_SYSLOG) {
|
||||
openlog(applet_name, LOG_PID, LOG_DAEMON);
|
||||
logmode |= LOGMODE_SYSLOG;
|
||||
}
|
||||
|
||||
#if ENABLE_FEATURE_MDEV_DAEMON
|
||||
if (opt & MDEV_OPT_DAEMON) {
|
||||
// there is no point in write()ing to /dev/null
|
||||
if (!(opt & MDEV_OPT_FOREGROUND))
|
||||
logmode &= ~LOGMODE_STDIO;
|
||||
|
||||
/*
|
||||
* Daemon mode listening on uevent netlink socket. Fork away
|
||||
* after initial scan so that caller can be sure everything
|
||||
@ -1276,8 +1290,6 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!(opt & MDEV_OPT_FOREGROUND))
|
||||
bb_daemonize_or_rexec(0, argv);
|
||||
|
||||
open_mdev_log(NULL, getpid());
|
||||
|
||||
daemon_loop(temp, fd);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user