summary refs log tree commit diff
path: root/initscript/Slackware/rc.networkmanager.in
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2010-11-29 00:47:11 +0100
committerMichael Biebl <biebl@debian.org>2010-11-29 00:47:11 +0100
commit9fae01fa351805b2903e535736e06971bc0b925e (patch)
treec19bccf84c9f894e50fae678ba6ee2b2044e2d30 /initscript/Slackware/rc.networkmanager.in
Imported Upstream version 0.8.1 upstream/0.8.1
Diffstat (limited to 'initscript/Slackware/rc.networkmanager.in')
-rw-r--r--initscript/Slackware/rc.networkmanager.in96
1 files changed, 96 insertions, 0 deletions
diff --git a/initscript/Slackware/rc.networkmanager.in b/initscript/Slackware/rc.networkmanager.in
new file mode 100644
index 00000000..04890384
--- /dev/null
+++ b/initscript/Slackware/rc.networkmanager.in
@@ -0,0 +1,96 @@
+#!/bin/sh
+#
+# NetworkManager:   NetworkManager daemon
+#
+# description:  This is a daemon for automatically switching network \
+#               connections to the best available connection. \
+#
+# processname: NetworkManager
+# pidfile: /var/run/NetworkManager.pid
+#
+
+prefix=@prefix@
+exec_prefix=@prefix@
+sbindir=@sbindir@
+
+NETWORKMANAGER_BIN=${sbindir}/NetworkManager
+
+# Sanity checks.
+[ -x $NETWORKMANAGER_BIN ] || exit 0
+
+PIDFILE=/var/run/NetworkManager.pid
+
+nm_start()
+{
+	if [ "`pgrep dbus-daemon`" = "" ]; then
+    echo "D-BUS must be running to start NetworkManager"
+    return
+	fi
+  
+	if [ "`pgrep hald`" = "" ]; then
+	 echo "HAL must be running to start NetworkManager"
+	 return
+	fi
+ 
+  # Just in case the pidfile is still there, we may need to nuke it.
+  if [ -e "$PIDFILE" ]; then
+    rm -f $PIDFILE
+  fi
+
+  echo "Starting NetworkManager daemon:  $NETWORKMANAGER_BIN"
+  $NETWORKMANAGER_BIN
+}
+
+nm_status()
+{
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ -z "$pidlist" ]; then
+    return 1
+  fi
+  local command=`ps -p $pidlist -o comm=`
+  if [ "$command" != 'NetworkManager' ]; then
+    return 1
+  fi
+}
+
+nm_stop()
+{
+  echo -en "Stopping NetworkManager: "
+  local pidlist=`cat $PIDFILE 2>/dev/null`
+  if [ ! -z "$pidlist" ]; then
+    kill $pidlist &>/dev/null
+    rm -f $PIDFILE &>/dev/null
+	fi
+  echo "stopped";
+}
+
+nm_restart()
+{
+  nm_stop
+  nm_start
+}
+
+case "$1" in
+'start')
+  if ( ! nm_status ); then
+    nm_start
+  else
+    echo "NetworkManager is already running (will not start it twice)."
+  fi
+		;;
+'stop')
+  nm_stop
+		;;
+'restart')
+  nm_restart
+		;;
+'status')
+  if ( nm_status ); then
+    echo "NetworkManager is currently running"
+  else
+    echo "NetworkManager is not running."
+  fi
+		;;
+*)
+  echo "usage $0 start|stop|status|restart"
+esac