diff --git a/init.d/fsck.in b/init.d/fsck.in index 68cdf14..279e25c 100644 --- a/init.d/fsck.in +++ b/init.d/fsck.in @@ -9,7 +9,7 @@ _IFS=" depend() { use dev clock modules - keyword -jail -openvz -prefix -timeout -vserver + keyword -jail -openvz -prefix -timeout -vserver -lxc } _abort() { diff --git a/init.d/hwclock.in b/init.d/hwclock.in index ea9fa34..e99900f 100644 --- a/init.d/hwclock.in +++ b/init.d/hwclock.in @@ -28,7 +28,7 @@ depend() else before * fi - keyword -openvz -prefix -uml -vserver -xenu + keyword -openvz -prefix -uml -vserver -xenu -lxc } setupopts() diff --git a/init.d/localmount.in b/init.d/localmount.in index 89a4801..a4d1116 100644 --- a/init.d/localmount.in +++ b/init.d/localmount.in @@ -8,7 +8,7 @@ depend() { need fsck use lvm modules mtab - keyword -jail -openvz -prefix -vserver + keyword -jail -openvz -prefix -vserver -lxc } start() diff --git a/init.d/modules.in b/init.d/modules.in index c2270ff..7c0b993 100644 --- a/init.d/modules.in +++ b/init.d/modules.in @@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules." depend() { use isapnp - keyword -openvz -prefix -vserver + keyword -openvz -prefix -vserver -lxc } start() diff --git a/init.d/mount-ro.in b/init.d/mount-ro.in index 45e0fab..69032d7 100644 --- a/init.d/mount-ro.in +++ b/init.d/mount-ro.in @@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot." depend() { need killprocs savecache - keyword -prefix -openvz -vserver + keyword -prefix -openvz -vserver -lxc } start() diff --git a/init.d/numlock.in b/init.d/numlock.in index 9d88fa0..7bf3dc7 100644 --- a/init.d/numlock.in +++ b/init.d/numlock.in @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} depend() { need localmount - keyword -openvz -prefix -vserver + keyword -openvz -prefix -vserver -lxc } _setleds() diff --git a/init.d/procfs.in b/init.d/procfs.in index 712adc2..2b73bd7 100644 --- a/init.d/procfs.in +++ b/init.d/procfs.in @@ -8,7 +8,7 @@ depend() { use modules devfs need localmount - keyword -openvz -prefix -vserver + keyword -openvz -prefix -vserver -lxc } start() diff --git a/init.d/root.in b/init.d/root.in index 6dc37c8..0689060 100644 --- a/init.d/root.in +++ b/init.d/root.in @@ -7,7 +7,7 @@ description="Mount the root fs read/write" depend() { need fsck - keyword -jail -openvz -prefix -vserver + keyword -jail -openvz -prefix -vserver -lxc } start() diff --git a/init.d/swap.in b/init.d/swap.in index 564531b..d99b9b8 100644 --- a/init.d/swap.in +++ b/init.d/swap.in @@ -5,7 +5,7 @@ depend() { need localmount - keyword -jail -openvz -prefix -vserver + keyword -jail -openvz -prefix -vserver -lxc } start() diff --git a/init.d/swclock.in b/init.d/swclock.in index 2d091fe..3357fc7 100644 --- a/init.d/swclock.in +++ b/init.d/swclock.in @@ -8,7 +8,7 @@ depend() { before * provide clock - keyword -openvz -prefix -uml -vserver -xenu + keyword -openvz -prefix -uml -vserver -xenu -lxc } # swclock is an OpenRC built in diff --git a/man/runscript.8 b/man/runscript.8 index a3e1f2e..f380617 100644 --- a/man/runscript.8 +++ b/man/runscript.8 @@ -143,6 +143,8 @@ When in a jail, exclude this service from any dependencies. The service can still be run directly. .It Dv -openvz Same as -jail, but for OpenVZ systems. +.It Dv -lxc +Same as -jail, but for Linux Resource Containers (LXC). .It Dv -shutdown Don't stop this service when shutting the system down. This normally quite safe as remaining daemons will be sent a SIGTERM just diff --git a/src/librc/librc.c b/src/librc/librc.c index 96e3195..34bd9e1 100644 --- a/src/librc/librc.c +++ b/src/librc/librc.c @@ -233,6 +233,8 @@ rc_sys(void) return RC_SYS_VSERVER; else if (exists("/proc/vz/veinfo") && !exists("/proc/vz/version")) return RC_SYS_OPENVZ; + else if (file_regex("/proc/self/cgroup", ":/.+$")) + return RC_SYS_LXC; else if (file_regex("/proc/self/status", "envID:[[:space:]]*[1-9]")) return RC_SYS_OPENVZ; /* old test */ diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in index 373f1d1..4b7977e 100644 --- a/src/librc/rc.h.in +++ b/src/librc/rc.h.in @@ -268,6 +268,7 @@ bool rc_service_daemons_crashed(const char *); * 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_LXC "LXC" #define RC_SYS_PREFIX "PREFIX" #define RC_SYS_UML "UML" #define RC_SYS_VSERVER "VSERVER"