Skip to content

Hotplugging devices in containers require a service restart #2240

Open
@alexgg

Description

@alexgg

When the supervisor bind mounts the /dev directory into the container is takes a snapshot of the device's /dev/, and future hotplugged devices are not updated until the container is restarted.

There is a workaround for container with at least CAP_SYS_ADMIN capabilities that is to remount the /dev/ directory:

#!/bin/sh
newdev='/tmp/dev'
mkdir -p "$newdev"
mount -t devtmpfs none "$newdev"
mount --move /dev/console "$newdev/console"
mount --move /dev/mqueue "$newdev/mqueue"
mount --move /dev/pts "$newdev/pts"
mount --move /dev/shm "$newdev/shm"
umount /dev
mount --move "$newdev" /dev
ln -sf /dev/pts/ptmx /dev/ptmx

Relates-to: https://balena.zendesk.com/agent/tickets/2728

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions