diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2016-07-27 16:26:26 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2016-07-27 16:26:26 -0500 |
commit | f62253b8334a85dac4671e42817b96a3bedd1881 (patch) | |
tree | 1581d14558c867ca217235aa5cc9c0cf8a801e88 /sh/runit.sh | |
parent | f2c2e2dd5a5e0a22da4dcabea6615d0f4697a962 (diff) |
Add support for runit
X-Gentoo-Bug: 501364
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=501364
Diffstat (limited to 'sh/runit.sh')
-rw-r--r-- | sh/runit.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sh/runit.sh b/sh/runit.sh new file mode 100644 index 00000000..e9c1d220 --- /dev/null +++ b/sh/runit.sh @@ -0,0 +1,52 @@ +# Copyright (c) 2016 The OpenRC Authors. +# See the Authors file at the top-level directory of this distribution and +# https://github.com/OpenRC/openrc/blob/master/AUTHORS +# +# This file is part of OpenRC. It is subject to the license terms in +# the LICENSE file found in the top-level directory of this +# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE +# This file may not be copied, modified, propagated, or distributed +# except according to the terms contained in the LICENSE file. +# Released under the 2-clause BSD license. + +runit_start() +{ + local service_path service_link + service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" + if [ ! -d "${service_path}" ]; then + eerror "Runit service ${service_path} not found" + return 1 + fi + service_link="${RC_SVCDIR}/sv/${service_path##*/}" + ebegin "Starting ${name:-$RC_SVCNAME}" + ln -snf "${service_path}" "${service_link}" + sv start "${service_link}" > /dev/null 2>&1 + eend $? "Failed to start $RC_SVCNAME" +} + +runit_stop() +{ + local service_path service_link + service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" + if [ ! -d "${service_path}" ]; then + eerror "Runit service ${service_path} not found" + return 1 + fi + service_link="${RC_SVCDIR}/sv/${service_path##*/}" + ebegin "Stopping ${name:-$RC_SVCNAME}" + sv stop "${service_link}" > /dev/null 2>&1 && + rm "${service_link}" + eend $? "Failed to stop $RC_SVCNAME" +} + +runit_status() +{ + local service_path service_link + service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" + if [ ! -d "${service_path}" ]; then + eerror "Runit service ${service_path} not found" + return 1 + fi + service_link="${RC_SVCDIR}/sv/${service_path##*/}" + sv status "${service_link}" +} |