2019-09-27 01:26:51 +00:00
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
|
|
|
|
|
|
|
|
USE_PROCD=1
|
|
|
|
START=70
|
|
|
|
|
2021-12-06 09:33:05 +00:00
|
|
|
LOG_LEVEL="INFO"
|
|
|
|
|
2019-09-27 01:26:51 +00:00
|
|
|
stop_service() {
|
|
|
|
# Load common utils
|
2019-11-27 08:24:07 +00:00
|
|
|
. /usr/share/ModemManager/modemmanager.common
|
2019-09-27 01:26:51 +00:00
|
|
|
# Set all configured interfaces as unavailable
|
|
|
|
mm_cleanup_interfaces
|
|
|
|
}
|
|
|
|
|
|
|
|
start_service() {
|
|
|
|
# Setup ModemManager service
|
2020-10-20 09:02:40 +00:00
|
|
|
#
|
|
|
|
# We will make sure that the rundir always exists, and we initially cleanup
|
|
|
|
# all interfaces flagging them as unavailable.
|
|
|
|
#
|
|
|
|
# The cached events processing will wait for MM to be available in DBus
|
|
|
|
# and will make sure all ports are re-notified to ModemManager every time
|
|
|
|
# it starts.
|
|
|
|
#
|
|
|
|
# All these commands need to be executed on every MM start, even after
|
ModemManager: refactoring procd init script
The way the init script is written now, we get a bad output when calling
the ubus service backend.
ubus call service list "{'verbose':true,'name':'modemmanager'}"
>{
> "modemmanager": {
> "instances": {
> "instance1": {
> "running": true,
> "pid": 20511,
> "command": [
> "sh",
> "-c",
> ".
>/usr/share/ModemManager/modemmanager.common; \t
>mkdir -m 0755 -p /var/run/modemmanager; \t
>mm_cleanup_interfaces; \t
>( mm_report_events_from_cache ) >/dev/null 2>&1 & \t
>/usr/sbin/ModemManager"
> ],
> "term_timeout": 5,
> "respawn": {
> "threshold": 3600,
> "timeout": 5,
> "retry": 5
> },
> "pidfile":"/var/run/modemmanager/modemmanager.pid"
> }
> }
> }
>}"
I also get the output in the log that the PID file cannot be created.
> daemon.err procd: Failed to remove pidfile: :No such file or directory
The changes in this commit fixes this issues, by moving startup into a
wrapper script.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-12-03 14:57:33 +00:00
|
|
|
# procd-triggered respawns, which is why this is wrapped in a startup
|
|
|
|
# wrapper script called '/usr/sbin/ModemManager-wrapper'.
|
2020-10-20 09:02:40 +00:00
|
|
|
#
|
ModemManager: refactoring procd init script
The way the init script is written now, we get a bad output when calling
the ubus service backend.
ubus call service list "{'verbose':true,'name':'modemmanager'}"
>{
> "modemmanager": {
> "instances": {
> "instance1": {
> "running": true,
> "pid": 20511,
> "command": [
> "sh",
> "-c",
> ".
>/usr/share/ModemManager/modemmanager.common; \t
>mkdir -m 0755 -p /var/run/modemmanager; \t
>mm_cleanup_interfaces; \t
>( mm_report_events_from_cache ) >/dev/null 2>&1 & \t
>/usr/sbin/ModemManager"
> ],
> "term_timeout": 5,
> "respawn": {
> "threshold": 3600,
> "timeout": 5,
> "retry": 5
> },
> "pidfile":"/var/run/modemmanager/modemmanager.pid"
> }
> }
> }
>}"
I also get the output in the log that the PID file cannot be created.
> daemon.err procd: Failed to remove pidfile: :No such file or directory
The changes in this commit fixes this issues, by moving startup into a
wrapper script.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-12-03 14:57:33 +00:00
|
|
|
. /usr/share/ModemManager/modemmanager.common
|
2019-09-27 01:26:51 +00:00
|
|
|
procd_open_instance
|
ModemManager: refactoring procd init script
The way the init script is written now, we get a bad output when calling
the ubus service backend.
ubus call service list "{'verbose':true,'name':'modemmanager'}"
>{
> "modemmanager": {
> "instances": {
> "instance1": {
> "running": true,
> "pid": 20511,
> "command": [
> "sh",
> "-c",
> ".
>/usr/share/ModemManager/modemmanager.common; \t
>mkdir -m 0755 -p /var/run/modemmanager; \t
>mm_cleanup_interfaces; \t
>( mm_report_events_from_cache ) >/dev/null 2>&1 & \t
>/usr/sbin/ModemManager"
> ],
> "term_timeout": 5,
> "respawn": {
> "threshold": 3600,
> "timeout": 5,
> "retry": 5
> },
> "pidfile":"/var/run/modemmanager/modemmanager.pid"
> }
> }
> }
>}"
I also get the output in the log that the PID file cannot be created.
> daemon.err procd: Failed to remove pidfile: :No such file or directory
The changes in this commit fixes this issues, by moving startup into a
wrapper script.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-12-03 14:57:33 +00:00
|
|
|
procd_set_param command /usr/sbin/ModemManager-wrapper
|
2021-12-06 09:33:05 +00:00
|
|
|
procd_append_param command --log-level="$LOG_LEVEL"
|
|
|
|
[ "$LOG_LEVEL" = "DEBUG" ] && procd_append_param command --debug
|
2019-09-27 01:26:51 +00:00
|
|
|
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
|
|
|
procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
|
|
|
|
procd_close_instance
|
|
|
|
}
|