byobu/lib/byobu/services

78 行
2.1 KiB
Bash
実行ファイル

#!/bin/sh -e
#
# services: show what services are running on this server (configurable)
#
# Copyright (C) 2009 Canonical Ltd.
# Copyright (C) 2011-2014 Dustin Kirkland
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
__services_detail() {
return
}
service_running() {
if [ -f "/etc/init/$1.conf" ]; then
# Use upstart
case "$(status $1 2>/dev/null)" in
*running*)
true
;;
*)
false
;;
esac
elif [ -f "/etc/init.d/$1" ]; then
# Fall back to sysvinit
/etc/init.d/$1 status >/dev/null 2>&1
else
false
fi
}
__services() {
local services="$SERVICES"
# Users can define a list of services to monitor in $BYOBU_CONFIG_DIR/status
if [ -z "$services" ]; then
if [ -f "/etc/eucalyptus/eucalyptus.conf" ]; then
# If the user has not defined any services, but this system is a
# UEC system, default to the list of Ubuntu Enterprise Cloud Services
services="eucalyptus-cloud|CLC eucalyptus-walrus|WC eucalyptus-cc|CC eucalyptus-sc|SC eucalyptus-nc|NC"
fi
fi
output=
for i in $services; do
service=${i%|*}
nick=${i#*|}
case "$service" in
eucalyptus-nc)
if service_running $service; then
# This is a node controller, determine VM usage
. /etc/eucalyptus/eucalyptus.conf
count=$(pgrep -c -f /usr/bin/kvm || true)
output="$output,NC:$count"
fi
;;
*)
service_running $service && output="$output,$nick"
;;
esac
done
[ -n "$output" ] || return
color w c; printf "%s" ${output#,}; color --
}
# vi: syntax=sh ts=4 noexpandtab