Split VPS into VSERVER and OPENVZ
This commit is contained in:
		| @@ -28,7 +28,7 @@ depend() | ||||
| 	else | ||||
| 		before * | ||||
| 	fi | ||||
| 	keyword noprefix nouml novps noxenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| setupopts() | ||||
|   | ||||
| @@ -9,7 +9,7 @@ depend() | ||||
| 	need localmount | ||||
| 	need keymaps    # sets up terminal encoding scheme | ||||
| 	after hotplug | ||||
| 	keyword noprefix nouml novps noxenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -15,7 +15,7 @@ dumpkeys_charset=${dumpkeys_charset:-${DUMPKEYS_CHARSET}} | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword noprefix nouml novps noxenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules." | ||||
| depend() | ||||
| { | ||||
| 	use isapnp | ||||
| 	keyword noprefix novps | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER}:-12} | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword noprefix | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| _setleds() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Mounts misc filesystems in /proc." | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword noprefix | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -6,7 +6,7 @@ depend() | ||||
| { | ||||
| 	use hostname | ||||
| 	before bootmisc logger | ||||
| 	keyword noprefix novps | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -113,7 +113,7 @@ start() | ||||
| 	[ -x /sbin/restorecon ] && restorecon /tmp/.ICE-unix /tmp/.X11-unix | ||||
|  | ||||
| 	# Create an 'after-boot' dmesg log | ||||
| 	if [ "${RC_SYS}" != "VPS" ]; then | ||||
| 	if [ "${RC_SYS}" != "VSERVER" -a "${RC_SYS}" != "OPENVZ" ]; then | ||||
| 		dmesg > /var/log/dmesg | ||||
| 		chmod 640 /var/log/dmesg | ||||
| 	fi | ||||
|   | ||||
| @@ -9,7 +9,7 @@ _ISF=" | ||||
| depend() | ||||
| { | ||||
| 	after clock modules | ||||
| 	keyword nojail noprefix notimeout | ||||
| 	keyword nojail noopenvz noprefix notimeout novserver | ||||
| } | ||||
|  | ||||
| _abort() { | ||||
|   | ||||
| @@ -27,7 +27,7 @@ sync; sync | ||||
| # If we are in a VPS, we don't need anything below here, because | ||||
| #   1) we don't need (and by default can't) umount anything (VServer) or | ||||
| #   2) the host utils take care of all umounting stuff (OpenVZ) | ||||
| if [ "${RC_SYS}" = "VPS" ]; then | ||||
| if [ "${RC_SYS}" = "VSERVER" -o "${RC_SYS}" = "OPENVZ" ]; then | ||||
| 	if [ -e /etc/init.d/"$1".sh ]; then | ||||
| 		. /etc/init.d/"$1".sh | ||||
| 	else | ||||
|   | ||||
| @@ -8,7 +8,7 @@ depend() | ||||
| { | ||||
| 	need fsck | ||||
| 	use modules mtab | ||||
| 	keyword nojail noprefix | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
| @@ -29,9 +29,6 @@ start() | ||||
|  | ||||
| stop() | ||||
| { | ||||
| 	# Don't unmount anything for VPS systems | ||||
| 	[ "${RC_SYS}" = "VPS" ] && return 0 | ||||
|  | ||||
| 	# We never unmount / or /dev or $RC_SVCDIR | ||||
| 	local x= no_umounts="/|/dev|/dev/.*|${RC_SVCDIR}" | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,7 @@ depend() | ||||
| 	config /etc/fstab | ||||
| 	need net ${pmap} | ||||
| 	use afc-client amd autofs dns nfs nfsmount portmap rpcbind rpc.statd | ||||
| 	keyword nojail noprefix | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Mount the root fs read/write" | ||||
| depend() | ||||
| { | ||||
| 	need fsck | ||||
| 	keyword nojail noprefix | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword nojail noprefix | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -137,12 +137,14 @@ Tags a service with a keyword. Here's the keywords we currently understand:- | ||||
| .It Dv nojail | ||||
| When in a jail, exclude this service from any dependencies. The service can | ||||
| still be run directly. | ||||
| .It Dv noopenvz | ||||
| Same as nojail, but for OpenVZ systems. | ||||
| .It Dv notimeout | ||||
| Do not time out waiting for that service. | ||||
| .It Dv nouml | ||||
| Same as nojail, but for UML systems. | ||||
| .It Dv novps | ||||
| Same as nojail, but for VServer and OpenVZ systems. | ||||
| .It Dv novserver | ||||
| Same as nojail, but for VServer systems. | ||||
| .It Dv noxen0 | ||||
| Same as nojail, but for Xen DOM0 systems. | ||||
| .It Dv noxenu | ||||
| @@ -284,7 +286,7 @@ Boot runlevel chosen. Default is boot. | ||||
| Default runlevel chosen. Default is default. | ||||
| .It Va RC_SYS | ||||
| A special variable to describe the system more. | ||||
| Possible values are XENU, XEN0, UML and VPS. | ||||
| Possible values are OPENVZ, XENU, XEN0, UML and VSERVER. | ||||
| .It Va RC_UNAME | ||||
| The result of `uname -s`. | ||||
| .El | ||||
|   | ||||
| @@ -65,7 +65,7 @@ mount_svcdir() | ||||
| # Set the console loglevel to 1 for a cleaner boot | ||||
| # the logger should anyhow dump the ring-0 buffer at start to the | ||||
| # logs, and that with dmesg can be used to check for problems | ||||
| if [ -n "${dmesg_level}" -a "${RC_SYS}" != "VPS" ]; then | ||||
| if [ -n "${dmesg_level}" -a "${RC_SYS}" != "VSERVER" ]; then | ||||
| 	dmesg -n "${dmesg_level}" | ||||
| fi | ||||
|  | ||||
| @@ -108,7 +108,10 @@ if [ -r /sbin/livecd-functions.sh ]; then | ||||
| 	livecd_read_commandline | ||||
| fi | ||||
|  | ||||
| if [ "${RC_UNAME}" != "GNU/kFreeBSD" -a "${RC_SYS}" != "VPS" ]; then | ||||
| if [ "${RC_UNAME}" != "GNU/kFreeBSD" \ | ||||
| 	-a "${RC_SYS}" != "VSERVER" \ | ||||
| 	-a "${RC_SYS}" != "OPENVZ" ] | ||||
| then | ||||
| 	if grep -Eq "[[:space:]]+sysfs$" /proc/filesystems; then | ||||
| 		if [ -d /sys ]; then | ||||
| 			if ! mountinfo --quiet /sys; then | ||||
| @@ -128,7 +131,8 @@ fi | ||||
|  | ||||
| # Try to figure out how the user wants /dev handled | ||||
| if [ "${rc_devices}" = "static" \ | ||||
| 	-o "${RC_SYS}" = "VPS" \ | ||||
| 	-o "${RC_SYS}" = "VSERVER" \ | ||||
| 	-o "${RC_SYS}" = "OPENVZ" \ | ||||
| 	-o "${RC_UNAME}" = "GNU/kFreeBSD" ] | ||||
| then | ||||
| 	ebegin "Using existing device nodes in /dev" | ||||
|   | ||||
| @@ -21,7 +21,7 @@ depend() | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	provide net | ||||
| 	keyword nojail noprefix | ||||
| 	keyword nojail noprefix novserver | ||||
|  | ||||
| 	case "${IFACE}" in | ||||
| 		lo|lo0);; | ||||
|   | ||||
| @@ -207,8 +207,11 @@ const char *rc_sys (void) | ||||
| 	} else if (file_regex ("/proc/cpuinfo", "UML")) | ||||
| 		return (RC_SYS_UML); | ||||
| 	else if (file_regex ("/proc/self/status", | ||||
| 			       "(s_context|VxID|envID):[[:space:]]*[1-9]")) | ||||
| 		return (RC_SYS_VPS); | ||||
| 			       "(s_context|VxID):[[:space:]]*[1-9]")) | ||||
| 		return (RC_SYS_VSERVER); | ||||
| 	else if (file_regex ("/proc/self/status", | ||||
| 			       "envID:[[:space:]]*[1-9]")) | ||||
| 		return (RC_SYS_OPENVZ); | ||||
| #endif | ||||
|  | ||||
| 	return (NULL); | ||||
|   | ||||
| @@ -232,9 +232,10 @@ bool rc_service_daemons_crashed (const char *service); | ||||
|  * OpenRC can support some special sub system types, normally virtualization. | ||||
|  * Some services cannot work in these systems, or we do something else. */ | ||||
| #define RC_SYS_JAIL    "JAIL" | ||||
| #define RC_SYS_OPENVZ  "OPENVZ" | ||||
| #define RC_SYS_PREFIX  "PREFIX" | ||||
| #define RC_SYS_UML     "UML" | ||||
| #define RC_SYS_VPS     "VPS" | ||||
| #define RC_SYS_VSERVER "VSERVER" | ||||
| #define RC_SYS_XEN0    "XEN0" | ||||
| #define RC_SYS_XENU    "XENU" | ||||
| const char *rc_sys (void); | ||||
|   | ||||
| @@ -289,8 +289,8 @@ static void sulogin (bool cont) | ||||
| #ifdef __linux__ | ||||
| 	char *e = getenv ("RC_SYS"); | ||||
|  | ||||
| 	/* VPS systems cannot do a sulogin */ | ||||
| 	if (e && strcmp (e, "VPS") == 0) { | ||||
| 	/* VSERVER and OPENVZ systems cannot do a sulogin */ | ||||
| 	if (e && (strcmp (e, "VSERVER") == 0 || strcmp (e, "OPENVZ") == 0) { | ||||
| 		execl ("/sbin/halt", "/sbin/halt", "-f", (char *) NULL); | ||||
| 		eerrorx ("%s: unable to exec `/sbin/halt': %s", applet, strerror (errno)); | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user