wait for networkd online before curl invocation

1) wait for network-online.target before invoking curl
   as there's no synchronization with network setup for this script
2) don't hide curl errors - it may be easier to debug the issues
3) add log and comments
This commit is contained in:
Zig Globulin 2022-02-09 14:28:16 +01:00 committed by nl6720
parent c376dc24c5
commit 089ddf6821
1 changed files with 10 additions and 1 deletions

View File

@ -16,7 +16,13 @@ automated_script ()
script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null
# there's no synchronization for network availability before executing this script
printf '%s: waiting for network-online.target\n' "$0"
until systemctl --quiet is-active network-online.target; do
sleep 1
done
printf '%s: downloading %s\n' "$0" "${script}"
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
rt=$?
else
cp "${script}" /tmp/startup_script
@ -24,6 +30,9 @@ automated_script ()
fi
if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script
printf '%s: executing automated script\n' "$0"
# note that script is executed when other services (like pacman-init) may be still in progress, please
# synchronize to "systemctl is-system-running --wait" when your script depends on other services
/tmp/startup_script
fi
fi