On Ubuntu: don't start Zookeeper twice

On Ubuntu, if the Zookeeper service is already running, attempting
to start it again fails with non-zero exit code. This patch detects
whether ZK is already started before trying to start it.

Change-Id: If1257152de01fe5fe0351fdbb538bce083edbec0
Closes-Bug: #1513741
diff --git a/lib/zookeeper b/lib/zookeeper
index e62ba8a..6637d52 100644
--- a/lib/zookeeper
+++ b/lib/zookeeper
@@ -69,7 +69,12 @@
 
 # start_zookeeper() - Start running processes, including screen
 function start_zookeeper {
-    start_service zookeeper
+    # Starting twice Zookeeper on Ubuntu exits with error code 1. See LP#1513741
+    # Match both systemd and sysvinit output
+    local running="(active \(running\)|start/running)"
+    if ! is_ubuntu || ! sudo /usr/sbin/service zookeeper status | egrep -q "$running"; then
+        start_service zookeeper
+    fi
 }
 
 # stop_zookeeper() - Stop running processes (non-screen)