LINUX.ORG.RU

Переменные окружения в зависимости от $DISPLAY

 , ,


0

1

Дано: ubuntu 12.04 в режиме multiseat - 2 юзера одновременно работают на одной машине на разных дисплеях. Хотелось бы выставлять определенные переменные окружения в зависимости от дисплея, через который юзер вошел в систему. То есть имеется такой скрипт:

if [ "$DISPLAY" = "192.168.2.2:10.0" ]
then
 export PULSE_SINK="alsa_output.pci-0000_00_14.2.analog-stereo"
 export PULSE_SOURCE="alsa_input.pci-0000_00_14.2.analog-stereo"
fi
if [ "$DISPLAY" = "192.168.2.2:11.0" ]
then
 export PULSE_SINK="alsa_output.usb-0c76_SSS_USB_Headphone_Set-00-Set.analog-stereo"
 export PULSE_SOURCE="alsa_input.usb-0c76_SSS_USB_Headphone_Set-00-Set.analog-mono"
fi
Почему то не работает очевидная вещь, если эти строчки прописать в .profile или в отдельный файл sh в /etc/profile.d/ или .bashrc, то после логина в Гноме можно видеть, что переменные не установлены. Если сделать скрипт и запустить в баше то переменные устанавливаются, то есть переменные DISPLAY указаны правильно. Если прописать переменные юзерам прямо в .pam_environment то переменные устанавливаются. К сожалению .pam_environment скрипты не принимает. Проблема в том, что переменные должны быть установлены в зависимости от того через какой дисплей работает юзер. А вот это не срабатывает почему то. Где еще можно прописать такой скрипт чтобы он установил переменные юзерам как надо?

Почему то не работает очевидная вещь, если эти строчки прописать в .profile или в отдельный файл sh в /etc/profile.d/ или .bashrc

потому, что эта очевидная вещь обрабатывается до старта иксов, что тоже очевидно

anonymous ()

Таки разобрался. Проблема была в неправильной переменной DISPLAY в if-ах. При запущенном Гноме echo $DISPLAY выдает 192.168.2.2:10.0, а чтобы скрипт отработал надо писать if [ «$DISPLAY» = «192.168.2.2:10» ] итд Скрипт прописан в .profile

oyster ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.