#!/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 # # 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 . __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= # 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