Skip to content

Hotplugging devices in containers require a service restart #2240

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions