1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/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
|