summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2017-01-21 16:34:11 +0100
committerPacho Ramos <pacho@gentoo.org>2017-01-21 16:35:03 +0100
commitab9e689bb80ff7ec7372d4439823abaa068fa1aa (patch)
tree5c6dbaef2a37fde6fcf2c561fc73f153f4a8429c /net-misc/networkmanager/files
parentwww-client/epiphany: Version bump (diff)
downloadgentoo-ab9e689bb80ff7ec7372d4439823abaa068fa1aa.tar.gz
gentoo-ab9e689bb80ff7ec7372d4439823abaa068fa1aa.tar.bz2
gentoo-ab9e689bb80ff7ec7372d4439823abaa068fa1aa.zip
net-misc/networkmanager: Try to use consolekit service if built with that support to prevent race conditions (#595806)
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'net-misc/networkmanager/files')
-rw-r--r--net-misc/networkmanager/files/init.d.NetworkManager-r158
1 files changed, 58 insertions, 0 deletions
diff --git a/net-misc/networkmanager/files/init.d.NetworkManager-r1 b/net-misc/networkmanager/files/init.d.NetworkManager-r1
new file mode 100644
index 000000000000..fbb8973b8af9
--- /dev/null
+++ b/net-misc/networkmanager/files/init.d.NetworkManager-r1
@@ -0,0 +1,58 @@
+#!/sbin/openrc-run
+# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org>
+# Distributed under the terms of the GNU General Purpose License v2
+# $Id$
+
+description="NetworkManager daemon. The service is marked as started only \
+when a network connection is established."
+
+depend() {
+ need dbus
+ use consolekit
+ provide net
+}
+
+start() {
+ # If we are re-called by a dispatcher event, we want to mark the service
+ # as started without starting the daemon again
+ yesno "${IN_BACKGROUND}" && return 0
+
+ [ -z "${INACTIVE_TIMEOUT}" ] && INACTIVE_TIMEOUT="1"
+
+ ebegin "Starting NetworkManager"
+ start-stop-daemon --start --quiet --pidfile /run/NetworkManager/NetworkManager.pid \
+ --exec /usr/sbin/NetworkManager -- --pid-file /run/NetworkManager/NetworkManager.pid
+ local _retval=$?
+ eend "${_retval}"
+ if [ "x${_retval}" = 'x0' ] && ! nm-online -t "${INACTIVE_TIMEOUT}"; then
+ einfo "Marking NetworkManager as inactive. It will automatically be marked"
+ einfo "as started after a network connection has been established."
+ mark_service_inactive
+ fi
+ return "${_retval}"
+}
+
+stop() {
+ # If we are re-called by a dispatcher event, we want to mark the service
+ # as inactive without stopping the daemon
+ if yesno "${IN_BACKGROUND}"; then
+ mark_service_inactive "${SVCNAME}"
+ return 0
+ fi
+
+ ebegin "Stopping NetworkManager"
+ local pidfile=/run/NetworkManager/NetworkManager.pid
+ if [ ! -e "${pidfile}" ] && [ -e /var/run/NetworkManager.pid ]; then
+ # Try stopping the pid file used by <0.9.7
+ pidfile=/var/run/NetworkManager.pid
+ start-stop-daemon --stop --quiet --pidfile "${pidfile}"
+ ret=$?
+ [ ${ret} = 0 ] && [ -e "${pidfile}" ] && rm "${pidfile}"
+ eend ${ret}
+ else
+ start-stop-daemon --stop --quiet --pidfile "${pidfile}"
+ eend $?
+ fi
+}
+
+# vim: set ft=gentoo-init-d ts=4 :