From 185fe2c73035b66b2c8e0048eedca47fd438e3e6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 15 Nov 2021 22:17:43 +0100 Subject: reintroduce global-wait --- doc/global-wait.md | 40 ++++++++++++++++++++++++++++++++++++++++ doc/mod/bridge-port-to.md | 4 +++- doc/mod/bridge-port-vlan.md | 4 +++- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 doc/global-wait.md (limited to 'doc') diff --git a/doc/global-wait.md b/doc/global-wait.md new file mode 100644 index 0000000..2d9dad3 --- /dev/null +++ b/doc/global-wait.md @@ -0,0 +1,40 @@ +Wait for global functions and modules +===================================== + +[◀ Go back to main README](../README.md) + +🛈 This script can not be used on its own but requires the base installation. +See [main README](../README.md) for details. + +Description +----------- + +The global functions from `global-functions` and modules are loaded by +scheduler at system startup. Running these functions at system startup may +result in race condition where configuration and/or function are not yet +available. This script is supposed to wait for everything being prepared. + +Do **not** add this script `global-wait` to the `global-scripts` scheduler! +It would inhibit the initialization of configuration and functions. + +Requirements and installation +----------------------------- + +Just install the script: + + $ScriptInstallUpdate global-wait; + +... and add it to your scheduler, for example in combination with the module +to [manage VLANs on bridge ports](mod/bridge-port-vlan.md): + + / system scheduler add name=bridge-port-vlan on-event="/ system script run global-wait; :global BridgePortVlan; \$BridgePortVlan default;" start-time=startup; + +See also +-------- + +* [Manage ports in bridge](mod/bridge-port-to.md) +* [Manage VLANs on bridge ports](mod/bridge-port-vlan.md) + +--- +[◀ Go back to main README](../README.md) +[▲ Go back to top](#top) diff --git a/doc/mod/bridge-port-to.md b/doc/mod/bridge-port-to.md index 89ee5d0..5b2817b 100644 --- a/doc/mod/bridge-port-to.md +++ b/doc/mod/bridge-port-to.md @@ -34,7 +34,8 @@ Also dhcp client can be handled: Add a scheduler to start with default setup on system startup: - / system scheduler add name=bridge-port-to on-event=":global GlobalFunctionsReady; :while (\$GlobalFunctionsReady != true) do={ :delay 500ms; }; :global BridgePortTo; \$BridgePortTo default;" start-time=startup; + $ScriptInstallUpdate global-wait; + / system scheduler add name=bridge-port-vlan on-event="/ system script run global-wait; :global BridgePortTo; \$BridgePortTo default;" start-time=startup; Usage and invocation -------------------- @@ -72,6 +73,7 @@ configuration: See also -------- +* [Wait for global functions und modules](../global-wait.md) * [Manage VLANs on bridge ports](bridge-port-vlan.md) --- diff --git a/doc/mod/bridge-port-vlan.md b/doc/mod/bridge-port-vlan.md index 8b88777..67dd04d 100644 --- a/doc/mod/bridge-port-vlan.md +++ b/doc/mod/bridge-port-vlan.md @@ -39,7 +39,8 @@ Also dhcp client can be handled: Add a scheduler to start with default setup on system startup: - / system scheduler add name=bridge-port-vlan on-event=":global GlobalFunctionsReady; :while (\$GlobalFunctionsReady != true) do={ :delay 500ms; }; :global BridgePortVlan; \$BridgePortVlan default;" start-time=startup; + $ScriptInstallUpdate global-wait; + / system scheduler add name=bridge-port-vlan on-event="/ system script run global-wait; :global BridgePortVlan; \$BridgePortVlan default;" start-time=startup; Usage and invocation -------------------- @@ -76,6 +77,7 @@ configuration: See also -------- +* [Wait for global functions und modules](../global-wait.md) * [Manage ports in bridge](bridge-port-to.md) --- -- cgit v1.2.3-54-g00ecf