чтение fstab для монтирования sshfs в контейнере

Альтернатива ddcutil (, например, если ваш монитор не поддерживает DDC/CI, или вы не хотите загружать дополнительный модуль ядра (i2c-dev), или у вас нет прав доступа /dev/i2c-*), заключается в использовании красного смещения .

Красное смещение управляет цветовой температурой, но также и яркостью экрана.

Вы можете установить в файле конфигурации разную яркость (и разные цветовые температуры, если хотите )в течение дня и ночи, или вы можете изменить любой из них на лету из командной строки.

Из командной строки в ситуации с несколькими мониторами -необходимо использовать флаг -m. Ваш основной монитор — crtc=0, а внешний — crtc=1. Вы также можете использовать имя вашего монитора, заданное xrandr.

Так, например, чтобы установить яркость 70% на внешнем мониторе, вы можете запустить:

redshidft -m randr:crtc=1 -b 0.7 &

Если вы используете файл конфигурации, добавьте в него:

[randr]
screen=0
crtc=1

(Это будет crtc=0для файла конфигурации вашего основного монитора. Этот выпуск посвящен этому.)

Если вы уже используете красное смещение на основном экране, у вас может быть 2 запущенных экземпляра красного смещения с разными настройками для каждого из ваших мониторов. Вы даже можете иметь 2 разных файла конфигурации (для загрузки второго экземпляра Redshift с флагом -c, чтобы указать ему путь к вашему второму файлу конфигурации ).

Следует помнить, что даже после того, как вы убили экземпляр Redshift, настройки остаются активными. Чтобы вернуться к своим обычным настройкам, вам нужно запустить redshift -x(, поэтому, опять же, для вашего внешнего монитора это будетredshift -m randr:crtc=1 -x). Если вы убьете экземпляр, а затем запустите другой без предварительного запуска этой команды, настройки будут кумулятивными. Это немного странное поведение, но на самом деле оно имеет некоторые преимущества :в некоторых случаях, в зависимости от того, как они запущены, 2 одновременных экземпляра могут вызвать некоторое мерцание. Если это когда-нибудь произойдет, вы можете просто убить один (или оба ), чтобы решить проблему :, настройки останутся.

Все это может показаться очень сложным, но как только вы ознакомитесь с этим и настроите некоторые файлы конфигурации, или псевдонимы, или сочетания клавиш, это действительно работает очень хорошо.И если вы запустите свои экземпляры с красным смещением, например, из .xinitrc, вам, возможно, больше не придется возиться с ним, поскольку яркость будет автоматически регулироваться в сумерках и вниз.


редактировать:Мой комментарий о том, что красное смещение не сбрасывает значения монитора по умолчанию после того, как меня убили выше, был ошибкой с моей стороны:

  • если осторожно попросить умереть и очистить сигналом 15 (например. kill -15 , что является значением сигнала по умолчанию для kill), оно фактически сбрасывает все как часть очистки

  • если убит сигналом 9 (например. kill -9 ), он остановится, ничего не сбрасывая

Это имеет смысл, но я никогда этого не осознавал. В ситуациях, когда несколько экземпляров красного смещения создают некоторое мерцание, я пользуюсь этим и запускаю, а затем немедленно убиваю (какой-либо функцией )новый экземпляр. Это, вероятно, не очень чисто... но до сих пор это работало для меня очень хорошо.

0
29.04.2020, 00:55
1 ответ

У меня получилось, вместо запуска следующей команды запуска Dockerfile:

RUN echo "sshfs#myuser@${host}:${folder} $mount_folder fuse allow_other,default_permissions,umask=0007,idmap=file,uidfile=/etc/sshfs_umap,gidfile=/etc/sshfs_gmap,nomap=ignore,StrictHostKeyChecking=no,IdentityFile=/root/.ssh/id_rsa   0       0" >> /etc/fstab

Я удаляю его и добавляю в dockerfile команду CMD, которая запускает.sh-скрипт и содержит строку:

#!/bin/sh
sshfs -o allow_other -o reconnect -o default_permissions -o 'umask=0007' -o 'idmap=file' -o 'uidfile=/etc/sshfs_umap' -o 'gidfile=/etc/sshfs_gmap' -o 'nomap=ignore' -o 'StrictHostKeyChecking=no' -o 'IdentityFile=/root/.ssh/id_rsa' myuser@$SFTP_HOST:$SFTP_ROOT_FOLDER /myfolder

#do tother things here to run your app

Это монтирует удаленную файловую систему каждый раз, когда запускается контейнер Docker. Я предполагаю, что причина, по которой /etc/fstab не запустилась, вероятно, в том, что контейнер на самом деле не загружается с нуля, потому что это контейнер... поэтому /etc/fstab никогда не запускается...

0
19.03.2021, 02:21

Теги

Похожие вопросы