почему он слетает при перезагрузке
А какой именно памяти?
Получается код задающий размер буфера сокета равным размеру пакета (38 байт) не имеет смысла т.к. всё равно выставляется минимальное значение 2048.
Где поменять тег bash на zsh?
На самом деле я пользуюсь zsh, но думаю, что это не играет большой роли для решения данной проблемы.
я не уверен, будут ли отключатся устройства, если выключать им только минус?
У них 2 пина на питания и 10 на данные, могут там как-то получать минус
В чем тогда смысл header'ов