mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-28 06:35:34 +07:00
udevd: allow starting of udevd with stopped exec-queue
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
parent
9607c4222c
commit
561d4c5a3a
0
test/simple-build-check.sh
Normal file → Executable file
0
test/simple-build-check.sh
Normal file → Executable file
16
udevd.c
16
udevd.c
@ -766,6 +766,8 @@ int main(int argc, char *argv[], char *envp[])
|
||||
fd_set readfds;
|
||||
const char *value;
|
||||
int uevent_nl_active = 0;
|
||||
int daemonize = 0;
|
||||
int i;
|
||||
|
||||
logging_init("udevd");
|
||||
udev_init_config();
|
||||
@ -776,8 +778,18 @@ int main(int argc, char *argv[], char *envp[])
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* daemonize on request */
|
||||
if (argc == 2 && strcmp(argv[1], "-d") == 0) {
|
||||
for (i = 1 ; i < argc; i++) {
|
||||
char *arg = argv[i];
|
||||
if (strcmp(arg, "--daemon") == 0 || strcmp(arg, "-d") == 0) {
|
||||
info("will daemonize");
|
||||
daemonize = 1;
|
||||
}
|
||||
if (strcmp(arg, "--stop-exec-queue") == 0) {
|
||||
info("will not execute event until START_EXEC_QUEUE is received");
|
||||
stop_exec_q = 1;
|
||||
}
|
||||
}
|
||||
if (daemonize) {
|
||||
pid_t pid;
|
||||
|
||||
pid = fork();
|
||||
|
10
udevstart.c
10
udevstart.c
@ -117,30 +117,29 @@ static int add_device(const char *path, const char *subsystem)
|
||||
|
||||
class_dev = sysfs_open_class_device_path(path);
|
||||
if (class_dev == NULL) {
|
||||
dbg ("sysfs_open_class_device_path failed");
|
||||
dbg("sysfs_open_class_device_path failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
udev_init_device(&udev, devpath, subsystem, "add");
|
||||
udev.devt = get_devt(class_dev);
|
||||
if (!udev.devt) {
|
||||
dbg ("sysfs_open_class_device_path failed");
|
||||
dbg("sysfs_open_class_device_path failed");
|
||||
return -1;
|
||||
}
|
||||
udev_rules_get_name(&udev, class_dev);
|
||||
if (udev.ignore_device) {
|
||||
info("device event will be ignored");
|
||||
dbg("device event will be ignored");
|
||||
goto exit;
|
||||
}
|
||||
if (udev.name[0] == '\0') {
|
||||
info("device node creation supressed");
|
||||
dbg("device node creation supressed");
|
||||
goto run;
|
||||
}
|
||||
|
||||
udev_add_device(&udev, class_dev);
|
||||
if (udev.devname[0] != '\0')
|
||||
setenv("DEVNAME", udev.devname, 1);
|
||||
|
||||
run:
|
||||
if (udev_run && !list_empty(&udev.run_list)) {
|
||||
struct name_entry *name_loop;
|
||||
@ -149,7 +148,6 @@ run:
|
||||
list_for_each_entry(name_loop, &udev.run_list, node)
|
||||
execute_command(name_loop->name, udev.subsystem);
|
||||
}
|
||||
|
||||
exit:
|
||||
sysfs_close_class_device(class_dev);
|
||||
udev_cleanup_device(&udev);
|
||||
|
Loading…
Reference in New Issue
Block a user