mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
udevd: add --debug-trace option
This commit is contained in:
parent
9e8fe79b8e
commit
c7c00276f6
5
udevd.8
5
udevd.8
@ -14,7 +14,7 @@
|
||||
udevd \- event managing daemon
|
||||
.SH "SYNOPSIS"
|
||||
.HP 6
|
||||
\fBudevd\fR [\fB\-\-daemon\fR] [\fB\-\-verbose\fR] [\fB\-\-help\fR]
|
||||
\fBudevd\fR [\fB\-\-daemon\fR] [\fB\-\-debug\-trace\fR] [\fB\-\-verbose\fR] [\fB\-\-help\fR]
|
||||
.HP 20
|
||||
\fBudevcontrol \fR\fB\fIcommand\fR\fR
|
||||
.SH "DESCRIPTION"
|
||||
@ -25,6 +25,9 @@ udevd listens to kernel uevents and passes the incoming events to udev. It ensur
|
||||
\fB\-\-daemon\fR
|
||||
Detach and run in the background.
|
||||
.TP 3n
|
||||
\fB\-\-debug\-trace\fR
|
||||
Run all events completely serialized. This may be useful if udev triggers actions or loads kernel modules which cause problems and a slow but continiuous operation is needed, where no events are processed in parallel.
|
||||
.TP 3n
|
||||
\fB\-\-verbose\fR
|
||||
Print log messages to stdout.
|
||||
.TP 3n
|
||||
|
18
udevd.c
18
udevd.c
@ -45,6 +45,7 @@
|
||||
#include "udevd.h"
|
||||
#include "udev_selinux.h"
|
||||
|
||||
static int debug_trace;
|
||||
static int verbose;
|
||||
|
||||
static struct udev_rules rules;
|
||||
@ -307,6 +308,15 @@ static void msg_queue_insert(struct udevd_uevent_msg *msg)
|
||||
|
||||
export_event_state(msg, EVENT_QUEUED);
|
||||
|
||||
/* run one event after the other in debug mode */
|
||||
if (debug_trace) {
|
||||
list_add_tail(&msg->node, &running_list);
|
||||
udev_event_run(msg);
|
||||
waitpid(msg->pid, NULL, 0);
|
||||
msg_queue_delete(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
/* run all events with a timeout set immediately */
|
||||
if (msg->timeout != 0) {
|
||||
list_add_tail(&msg->node, &running_list);
|
||||
@ -930,6 +940,7 @@ int main(int argc, char *argv[], char *envp[])
|
||||
int option;
|
||||
static const struct option options[] = {
|
||||
{ "daemon", 0, NULL, 'd' },
|
||||
{ "debug-trace", 0, NULL, 't' },
|
||||
{ "verbose", 0, NULL, 'v' },
|
||||
{ "help", 0, NULL, 'h' },
|
||||
{}
|
||||
@ -952,13 +963,16 @@ int main(int argc, char *argv[], char *envp[])
|
||||
case 'd':
|
||||
daemonize = 1;
|
||||
break;
|
||||
case 't':
|
||||
debug_trace = 1;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = 1;
|
||||
if (udev_log_priority < LOG_INFO)
|
||||
udev_log_priority = LOG_INFO;
|
||||
break;
|
||||
case 'h':
|
||||
printf("Usage: udevd [--help] [--daemon] [--verbose]\n");
|
||||
printf("Usage: udevd [--help] [--daemon] [--debug-trace] [--verbose]\n");
|
||||
goto exit;
|
||||
default:
|
||||
goto exit;
|
||||
@ -1128,6 +1142,8 @@ int main(int argc, char *argv[], char *envp[])
|
||||
/* export log_priority , as called programs may want to follow that setting */
|
||||
sprintf(udev_log, "UDEV_LOG=%i", udev_log_priority);
|
||||
putenv(udev_log);
|
||||
if (debug_trace)
|
||||
putenv("DEBUG=1");
|
||||
|
||||
maxfd = udevd_sock;
|
||||
maxfd = UDEV_MAX(maxfd, uevent_netlink_sock);
|
||||
|
10
udevd.xml
10
udevd.xml
@ -26,6 +26,7 @@
|
||||
<cmdsynopsis>
|
||||
<command>udevd</command>
|
||||
<arg><option>--daemon</option></arg>
|
||||
<arg><option>--debug-trace</option></arg>
|
||||
<arg><option>--verbose</option></arg>
|
||||
<arg><option>--help</option></arg>
|
||||
</cmdsynopsis>
|
||||
@ -48,6 +49,15 @@
|
||||
<para>Detach and run in the background.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--debug-trace</option></term>
|
||||
<listitem>
|
||||
<para>Run all events completely serialized. This may be useful if udev triggers
|
||||
actions or loads kernel modules which cause problems and a slow but continiuous
|
||||
operation is needed, where no events are processed in parallel.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--verbose</option></term>
|
||||
<listitem>
|
||||
|
Loading…
Reference in New Issue
Block a user