#!/bin/sh trap_with_arg() { func="$1" ; shift for sig ; do # shellcheck disable=SC2064 trap "$func $sig" "$sig" done } func_trap() { logger "ModemManager-wrapper[$$]" "Sending signal ${1}..." kill "-${1}" "$CHILD" 2>/dev/null } main() { . /usr/share/ModemManager/modemmanager.common trap_with_arg func_trap INT TERM KILL mkdir -p "${MODEMMANAGER_RUNDIR}" chmod 0755 "${MODEMMANAGER_RUNDIR}" mm_cleanup_interfaces /usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null & CHILD="$!" mm_report_events_from_cache wait "$CHILD" } main "$@"