diff options
author | Dan Williams <dcbw@redhat.com> | 2006-03-27 18:13:05 +0000 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-03-27 18:13:05 +0000 |
commit | c5a395f65db9e25b2ae743555d0528ae07338aa4 (patch) | |
tree | 7b081333db8228d1f7c02c2fe1defca457210fee /initscript | |
parent | 0695a8e944b3d5d86ebac8b01c60852dc3a607e2 (diff) |
2006-03-27 Dan Williams <dcbw@redhat.com>
Patch from Diffe <diffie@blazebox.homeip.net>
* initscript/Slackware/rc.networkmanager
- update, fixed gnome.org #333368
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1648 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'initscript')
-rwxr-xr-x | initscript/Slackware/rc.networkmanager | 89 |
1 files changed, 56 insertions, 33 deletions
diff --git a/initscript/Slackware/rc.networkmanager b/initscript/Slackware/rc.networkmanager index e00a42efbb..f02eddff5f 100755 --- a/initscript/Slackware/rc.networkmanager +++ b/initscript/Slackware/rc.networkmanager @@ -11,56 +11,79 @@ # We need /sbin/ip [ -x /sbin/ip ] || exit 1 -processname=NetworkManager -servicename=NetworkManager -pidfile=/var/run/NetworkManager.pid +PIDFILE=/var/run/NetworkManager.pid -RETVAL=0 - -start() +nm_start() { if [ "`pgrep dbus-daemon`" = "" ]; then - echo -n "D-BUS must be running to start NetworkManager" - exit 1 + echo "D-BUS must be running to start NetworkManager" + return fi + if [ "`pgrep hald`" = "" ]; then - echo -n "HAL must be running to start NetworkManager" - exit 1 + echo "HAL must be running to start NetworkManager" + return fi - echo -n $"Starting NetworkManager daemon: " - $servicename - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && echo `/sbin/pidof $processname` > $pidfile + # 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: /usr/sbin/NetworkManager" + /usr/sbin/NetworkManager } -stop() +nm_status() { - echo -n $"Stopping NetworkManager daemon: " + 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 +} - killall -s TERM $servicename - RETVAL=$? - echo - if [ $RETVAL -eq 0 ]; then - rm -f $pidfile +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 } -# See how we were called. case "$1" in - start) - start +'start') + if ( ! nm_status ); then + nm_start + else + echo "NetworkManager is already running (will not start it twice)." + fi ;; - stop) - stop +'stop') + nm_stop ;; - restart) - stop - start +'restart') + nm_restart ;; - *) - echo $"Usage: $0 {start|stop|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 -exit $RETVAL |