suspend: manage NetworkManager service on suspend/resume

NetworkManager was experiencing an unexpected behavior managing
the network interfaces on a supend/resume process, then to avoid
this undesired behavior the suspend script will stop and restart
the NetworkManager service.

https://jira.digi.com/browse/DEL-5351

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
Arturo Buzarra 2017-12-04 11:28:23 +01:00
parent ffb0e6954b
commit 2a175fd546
3 changed files with 21 additions and 0 deletions

View File

@ -22,6 +22,7 @@ lockfd="9"
BT_INIT="/etc/init.d/bluetooth-init"
BT_DAEMON="/etc/init.d/bluetooth"
NM_DAEMON="/etc/init.d/networkmanager"
usage() {
printf "\nSuspend system to RAM memory\n"
@ -31,6 +32,9 @@ usage() {
}
suspend_interfaces() {
# Stop NetworkManager before suspend
${NM_DAEMON} stop
# Suspend wireless interfaces
if [ -d "/proc/device-tree/wireless" ]; then
for i in $(sed -ne 's,^\(wlan[0-9]\)=.*,\1,g;T;p' /var/run/ifstate | sort -r); do
@ -60,6 +64,9 @@ resume_interfaces() {
done
fi
# Resume NetworkManager after suspend
${NM_DAEMON} start
# Resume bluetooth interface
if [ -d "/proc/device-tree/bluetooth" ]; then
if [ -n "${up_bt_on_resume}" ]; then

View File

@ -22,6 +22,7 @@ lockfd="9"
BT_INIT="/etc/init.d/bluetooth-init"
BT_DAEMON="/etc/init.d/bluetooth"
NM_DAEMON="/etc/init.d/networkmanager"
usage() {
printf "\nSuspend system to RAM memory\n"
@ -31,6 +32,9 @@ usage() {
}
suspend_interfaces() {
# Stop NetworkManager before suspend
${NM_DAEMON} stop
# Suspend wireless interfaces
if [ -d "/proc/device-tree/wireless" ]; then
for i in $(sed -ne 's,^\(wlan[0-9]\)=.*,\1,g;T;p' /var/run/ifstate | sort -r); do
@ -67,6 +71,9 @@ resume_interfaces() {
${BT_DAEMON} start >/dev/null
fi
fi
# Resume NetworkManager after suspend
${NM_DAEMON} start
}
enter_critical_section() {

View File

@ -22,6 +22,7 @@ lockfd="9"
BT_INIT="/etc/init.d/bluetooth-init"
BT_DAEMON="/etc/init.d/bluetooth"
NM_DAEMON="/etc/init.d/networkmanager"
usage() {
printf "\nSuspend system to RAM memory\n"
@ -31,6 +32,9 @@ usage() {
}
suspend_interfaces() {
# Stop NetworkManager before suspend
${NM_DAEMON} stop
# Suspend wireless interfaces
if [ -d "/proc/device-tree/wireless" ]; then
for i in $(sed -ne 's,^\(wlan[0-9]\)=.*,\1,g;T;p' /var/run/ifstate | sort -r); do
@ -67,6 +71,9 @@ resume_interfaces() {
${BT_DAEMON} start >/dev/null
fi
fi
# Resume NetworkManager after suspend
${NM_DAEMON} start
}
enter_critical_section() {