chiark / gitweb /
Fix service file to match installed elogind binary location
[elogind.git] / src / login / logind.c
index b09ecf6118934962b8310cd4f34bcc76673fffd9..7452c5b82c125e06c8af6327a627c2d0f7ea9476 100644 (file)
@@ -81,9 +81,6 @@ static void manager_reset_config(Manager *m) {
 
         m->kill_only_users = strv_free(m->kill_only_users);
         m->kill_exclude_users = strv_free(m->kill_exclude_users);
-#if 1 /// elogind needs an Add-On for sleep configuration
-        elogind_manager_reset_config(m);
-#endif // 1
 }
 
 static Manager *manager_new(void) {
@@ -1140,6 +1137,10 @@ static int manager_dispatch_reload_signal(sd_event_source *s, const struct signa
         else
                 log_info("Config file reloaded.");
 
+#if 1 /// elogind needs an Add-On for sleep configuration
+        elogind_manager_reset_config(m);
+#endif // 1
+
         return 0;
 }
 
@@ -1160,6 +1161,10 @@ static int manager_startup(Manager *m) {
         if (r < 0)
                 return log_error_errno(r, "Failed to register SIGHUP handler: %m");
 
+#if 1 /// elogind needs some extra preparations before connecting...
+        elogind_manager_startup(m);
+#endif // 1
+
         /* Connect to console */
         r = manager_connect_console(m);
         if (r < 0)
@@ -1268,6 +1273,12 @@ int main(int argc, char *argv[]) {
         Manager *m = NULL;
         int r;
 
+#if 1 /// perform extra checks for elogind startup
+        r = elogind_startup(argc, argv);
+        if (r)
+                return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+#endif // 0
+
         elogind_set_program_name(argv[0]);
         log_set_target(LOG_TARGET_AUTO);
         log_set_facility(LOG_AUTH);
@@ -1280,11 +1291,13 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
+#if 0 /// elogind has some extra functionality at startup, argc can be != 1
         if (argc != 1) {
                 log_error("This program takes no arguments.");
                 r = -EINVAL;
                 goto finish;
         }
+#endif // 0
 
         r = mac_selinux_init();
         if (r < 0) {
@@ -1327,6 +1340,10 @@ int main(int argc, char *argv[]) {
 
         manager_parse_config_file(m);
 
+#if 1 /// elogind needs an Add-On for sleep configuration
+        elogind_manager_reset_config(m);
+#endif // 1
+
         r = manager_startup(m);
         if (r < 0) {
                 log_error_errno(r, "Failed to fully start up daemon: %m");