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