chiark / gitweb /
volume_id: include stddef.h header
[elogind.git] / extras / run_directory / run_directory.c
index 770d8d84a11b707da612221b578a7d2a943771a8..69faecc15e4e31b7caeba7e8e629c24a608fdc14 100644 (file)
@@ -27,7 +27,7 @@
 #include "../../logging.h"
 #include "run_directory.h"
 
-static int run_program(const char *filename, const char *subsystem)
+static int exec_program(const char *filename, const char *subsystem)
 {
        pid_t pid;
 
@@ -53,13 +53,20 @@ static int run_program(const char *filename, const char *subsystem)
 int run_directory(const char *dir, const char *suffix, const char *subsystem)
 {
        struct name_entry *name_loop, *name_tmp;
+       struct stat buf;
        LIST_HEAD(name_list);
 
        dbg("looking at '%s'", dir);
+
+       if (stat(dir, &buf) != 0) {
+               dbg("directory '%s' not found", dir);
+               return 0;
+       }
+
        add_matching_files(&name_list, dir, suffix);
 
        list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) {
-               run_program(name_loop->name, subsystem);
+               exec_program(name_loop->name, subsystem);
                list_del(&name_loop->node);
        }