33 lines
1016 B
Bash
Executable File
33 lines
1016 B
Bash
Executable File
#!/bin/sh
|
|
# This file is part of cloud-init. See LICENSE file for license information.
|
|
|
|
# This script checks if cloud-init has hotplug hooked and if
|
|
# cloud-init is ready; if so invoke cloud-init hotplug-hook
|
|
|
|
fifo=/run/cloud-init/share/hook-hotplug-cmd
|
|
log_file=/run/cloud-init/hook-hotplug.log
|
|
|
|
should_run() {
|
|
if [ -d /run/systemd ]; then
|
|
# check that the socket is ready
|
|
[ -p $fifo ]
|
|
else
|
|
# on non-systemd, check cloud-init fully finished.
|
|
[ -e /run/cloud-init/result.json ]
|
|
fi
|
|
}
|
|
|
|
if ! should_run; then
|
|
# This happens when a device is hotplugged before cloud-init-hotplugd.socket is
|
|
# listening on the socket.
|
|
echo "Not running hotplug, not ready yet" >> ${log_file}
|
|
exit 0
|
|
fi
|
|
|
|
# open cloud-init's hotplug-hook fifo rw
|
|
exec 3<>$fifo
|
|
env_params=" --subsystem=${SUBSYSTEM} handle --devpath=${DEVPATH} --udevaction=${ACTION}"
|
|
# write params to cloud-init's hotplug-hook fifo
|
|
echo "${env_params}" >&3
|
|
echo "Running hotplug hook: $env_params" >> ${log_file}
|