Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:advanced:hotplug_extras [2021/03/16 01:32] – moved from hotplug_online vgaeteradocs:guide-user:advanced:hotplug_extras [2023/10/03 18:12] – [Instructions] avoid global delay, use delay per script if necessary vgaetera
Line 1: Line 1:
 ====== Hotplug extras ====== ====== Hotplug extras ======
-{{section>meta:infobox:howto_links#cli_skills&noheader&nofooter&noeditbutton}}+{{section>meta:infobox:howto_links#basic_skills&noheader&nofooter&noeditbutton}}
  
 ===== Introduction ===== ===== Introduction =====
-  * This instruction is designed to extend [[docs:guide-user:base-system:hotplug|hotplug]] functionality.+  * This instruction extends the functionality of [[docs:guide-user:base-system:hotplug|Hotplug]]
 +  * Follow the [[docs:guide-user:advanced:hotplug_extras#automated|automated]] section for quick setup.
  
-===== Goals =====+===== Features =====
   * Run scripts at startup when the network is online.   * Run scripts at startup when the network is online.
 +
 +===== Implementation =====
 +  * Use [[docs:guide-user:base-system:hotplug|Hotplug]] to detect connectivity change and trigger network dependent scripts.
 +  * Process subsystem-specific scripts with [[https://github.com/openwrt/openwrt/blob/master/package/base-files/files/sbin/hotplug-call|hotplug-call]].
 +  * Delay script invocation with [[man>sleep(1)|sleep]] to work around tunneled connections.
 +  * Write and read non-interactive logs with [[docs:guide-user:base-system:log.essentials|Syslog]] for troubleshooting.
  
 ===== Instructions ===== ===== Instructions =====
Line 12: Line 19:
 # Configure hotplug # Configure hotplug
 mkdir -p /etc/hotplug.d/iface mkdir -p /etc/hotplug.d/iface
-cat << "EOF" > /etc/hotplug.d/iface/99-online +cat << "EOF" > /etc/hotplug.d/iface/90-online 
-. /lib/functions/network.sh +if [ "${INTERFACE}" = "loopback" ] 
-network_flush_cache +then exit 0
-network_find_wan NET_IF +
-network_find_wan6 NET_IF6 +
-if [ "${INTERFACE}" = "${NET_IF}" -o "${INTERFACE}" = "${NET_IF6}" ] \ +
-&& [ "${ACTION}" = "ifup" -o "${ACTION}" = "ifupdate" ] +
-then for FILE in /etc/hotplug.d/online/+
-do . "${FILE}" 2>&+
-done | logger -t hotplug-online+
 fi fi
 +if [ "${ACTION}" != "ifup" ] \
 +&& [ "${ACTION}" != "ifupdate" ]
 +then exit 0
 +fi
 +if [ "${ACTION}" = "ifupdate" ] \
 +&& [ -z "${IFUPDATE_ADDRESSES}" ] \
 +&& [ -z "${IFUPDATE_DATA}" ]
 +then exit 0
 +fi
 +hotplug-call online
 EOF EOF
 cat << "EOF" >> /etc/sysupgrade.conf cat << "EOF" >> /etc/sysupgrade.conf
-/etc/hotplug.d/iface/99-online+/etc/hotplug.d/iface/90-online 
 +EOF 
 +</code> 
 + 
 +===== Examples ===== 
 +<code bash> 
 +# Example script 
 +cat << "EOF" > /etc/hotplug.d/online/00-logger 
 +logger -t hotplug $(env)
 EOF EOF
 +/etc/init.d/network restart
 +logread -e hotplug
 </code> </code>
  
 ===== Automated ===== ===== Automated =====
 <code bash> <code bash>
-opkg update +wget -U "" -O hotplug-extras.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/hotplug_extras?codeblock=0"
-opkg install libustream-mbedtls +
-uclient-fetch -O hotplug-extras.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/hotplug_extras?codeblock=0"+
 . ./hotplug-extras.sh . ./hotplug-extras.sh
 </code> </code>
  
  • Last modified: 2023/10/14 05:44
  • by vgaetera