September 8, 20232 yr I have a docker container that connects to my personal weather station (PWS) that is connected through USB. This device will randomly disconnect and reconnect (it's a "feature" of the panel), so I created some rules to give the device a name. This name is static, and will update when it reconnects. Let's say the device is /dev/mypws. In Extra Parameters, I have this "--device=$(readlink -f /dev/mypws)" This works great! When I create the container, everything works flawlessly. However, when I restart the container, it doesn't run again, so the container still has the old endpoint. I would love for this command to run every time it starts. How do I get it to do that? I have tried passing /dev/mypws as a device to the docker container, but it doesn't seem to like that very much for some reason. If anyone has any ideas on how to pass the device in a way I haven't thought of, or some way to run the command every time I start the container, that would be fantastic.
September 8, 20232 yr Author I was able to make a workaround using user scripts, but it's definitely not my favorite. #!/bin/bash trap exit SIGQUIT SIGINT echo $(date -u) "Starting Script" devloc=$(readlink -e /dev/mypws) echo $(date -u) "PWS is at: $devloc" echo $(date -u) "Starting device watchdog..." while :; do newloc=$(readlink -e /dev/mypws) if [[ "$devloc" != "$newloc" ]];then if [[ "$newloc" != "" ]];then echo $(date -u) "Device detected at a different node, running script" fi if [ -e /dev/mypws ] then echo $(date -u) "PWS Connected, setting permissions" sudo chown nobody:users /dev/bus/usb/003/* sudo chmod 777 /dev/bus/usb/003/* echo $(date -u) "Stopping Weewx" docker stop Weewx >> /dev/null echo $(date -u) "Removing Weewx" docker rm Weewx >> /dev/null echo $(date -u) "Restarting Weewx" docker run -d --name='Weewx' --net='bridge' --cpuset-cpus='2,8' -e TZ="America/Chicago" -e HOST_OS="Unraid" -e HOST_HOSTNAME="tower" -e HOST_CONTAINERNAME="Weewx" -e 'TIMEZONE'='America/Chicago' -e 'WEEWX_UID'='99' -e 'WEEWX_GID'='100' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://www.weewx.com/images/weewx-logo-128x128.png' -v '/mnt/user/appdata/weewx':'/data':'rw' --device=$(readlink -e /dev/mypws) 'felddy/weewx' >> /dev/null echo $(date -u) "Weewx Restarted" devloc=$newloc echo $(date -u) "PWS is now at: $devloc" echo $(date -u) "Resuming folder monitoring..." else echo $(date -u) "Device not connected" devloc=""; fi fi sleep 10 done Edited September 8, 20232 yr by Aathroser consistency
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.