File: hook-hotplug

package info (click to toggle)
cloud-init 25.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,412 kB
  • sloc: python: 135,894; sh: 3,883; makefile: 141; javascript: 30; xml: 22
file content (32 lines) | stat: -rwxr-xr-x 1,016 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/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}