aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/librc/librc-depend.c5
-rw-r--r--src/rc/_usage.c5
-rw-r--r--src/rc/rc-misc.c6
-rw-r--r--src/rc/rc.c20
4 files changed, 28 insertions, 8 deletions
diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c
index c9c06ad1..14cf2979 100644
--- a/src/librc/librc-depend.c
+++ b/src/librc/librc-depend.c
@@ -753,7 +753,7 @@ rc_deptree_update(void)
char *depend, *depends, *service, *type, *nosys, *onosys;
size_t i, k, l;
bool retval = true;
- const char *sys = rc_sys();
+ const char *sys = NULL;
struct utsname uts;
/* Some init scripts need RC_LIBEXECDIR to source stuff
@@ -860,6 +860,9 @@ rc_deptree_update(void)
/* Phase 2 - if we're a special system, remove services that don't
* work for them. This doesn't stop them from being run directly. */
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
if (sys) {
len = strlen(sys);
nosys = xmalloc(len + 2);
diff --git a/src/rc/_usage.c b/src/rc/_usage.c
index 2ab0fa6d..a6bad4db 100644
--- a/src/rc/_usage.c
+++ b/src/rc/_usage.c
@@ -56,7 +56,10 @@ show_version(void)
const char *systype = NULL;
printf("%s (OpenRC", applet);
- if ((systype = rc_sys()))
+ systype = detect_container();
+ if (!systype)
+ systype = detect_vm();
+ if (systype)
printf(" [%s]", systype);
printf(") %s", VERSION);
#ifdef BRANDING
diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c
index 1e2af0ab..263c0eda 100644
--- a/src/rc/rc-misc.c
+++ b/src/rc/rc-misc.c
@@ -139,7 +139,7 @@ env_config(void)
char *np;
char *npp;
char *tok;
- const char *sys = rc_sys();
+ const char *sys = NULL;
char buffer[PATH_MAX];
/* Ensure our PATH is prefixed with the system locations first
@@ -190,7 +190,9 @@ env_config(void)
} else
setenv("RC_DEFAULTLEVEL", RC_LEVEL_DEFAULT, 1);
- if (sys)
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
setenv("RC_SYS", sys, 1);
#ifdef PREFIX
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 8f69333c..ddc3c789 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -274,7 +274,11 @@ open_shell(void)
struct passwd *pw;
#ifdef __linux__
- const char *sys = rc_sys();
+ const char *sys = NULL;
+
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
/* VSERVER and OPENVZ systems cannot really drop to shells */
if (sys &&
@@ -480,7 +484,10 @@ do_sysinit()
uts.machine);
#endif
- if ((sys = rc_sys()))
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
+ if (sys)
printf(" [%s]", sys);
printf("%s\n\n", ecolor(ECOLOR_NORMAL));
@@ -495,7 +502,10 @@ do_sysinit()
/* init may have mounted /proc so we can now detect or real
* sys */
- if ((sys = rc_sys()))
+ sys = detect_container();
+ if (!sys)
+ sys = detect_vm();
+ if (sys)
setenv("RC_SYS", sys, 1);
}
@@ -846,7 +856,9 @@ main(int argc, char **argv)
eerrorx("%s: %s", applet, strerror(errno));
/* NOTREACHED */
case 'S':
- systype = rc_sys();
+ systype = detect_container();
+ if (!systype)
+ systype = detect_vm();
if (systype)
printf("%s\n", systype);
exit(EXIT_SUCCESS);