goto finish;
}
- if (!(e = getenv("NOTIFY_SOCKET"))) {
- r = 0;
- goto finish;
- }
+ if (!(e = getenv("NOTIFY_SOCKET")))
+ return 0;
/* Must be an abstract socket, or an absolute path */
if ((e[0] != '@' && e[0] != '/') || e[1] == 0) {
goto finish;
}
- r = 0;
+ r = 1;
finish:
if (unset_environment)
return r;
#endif
}
+
+int sd_booted(void) {
+#if defined(DISABLE_SYSTEMD) || !defined(__linux__)
+ return 0;
+#else
+
+ struct stat a, b;
+
+ /* We simply test whether the systemd cgroup hierarchy is
+ * mounted */
+
+ if (lstat("/cgroup", &a) < 0)
+ return 0;
+
+ if (lstat("/cgroup/systemd", &b) < 0)
+ return 0;
+
+ return a.st_dev != b.st_dev;
+#endif
+}