Intereting Posts
Ошибка GPG с репозитаром Mint в Debian Выполнение задания Cron в неправильный день Мой компьютер говорит: «/ dev / sda2 содержит файловую систему с ошибкой, проверяет принудительное» и показывает это Обычно ли Linux регистрирует данные о температуре системы? Не удается заставить Wireshark работать как пользователь на CentOS Как загрузить файл через SSH-сервер? Есть ли общий способ автоматического обновления с помощью cron? Значение root в файле конфигурации GRUB timestamping history file вызывает ошибочные строки в команде history CentOS 6.4: невозможно монтировать диск, не нравится UDF Как изменить драйвер по умолчанию, используемый для внешнего экрана Приложение для отладки последовательного порта для Linux Уменьшить время обнаружения USB в Linux? Bash и / или Zsh: Возможно ли настроить режим вставки Vi для создания привязки, которая перемещает определенное количество символов? grep игнорирует файлы, начинающиеся с точки

Команды настройки монитора не работают в скрипте

Я использую 64-разрядную версию Arch Linux на Samsung RV511. Я часто подключаю внешние мониторы с помощью xrandr . Когда я запускаю LXDE с Awesome в качестве диспетчера окон, мне нужно подготовить команду xrandr, убив некоторые элементы GUI и перезапустив их после этого, чтобы они правильно позиционировались.

Вот мой сценарий:

 #!/bin/sh # kill conky and lxpanel killall lxpanel killall conky # set monitor xrandr --output LVDS1 --mode 1366x768 --pos 1680x282 --output VGA1 --mode 1680x1050 --pos 0x0 # restart awesome killall -HUP awesome # restart lxpanel and conky lxpanel -p LXDE & conky & 

Теперь у меня возникает странная проблема. Когда я запускаю все вышеперечисленные команды в одной последовательности из командной строки, я получаю опрятную конфигурацию монитора. Однако, когда я запускаю скрипт, графический интерфейс падает, оставляя странный узор обоев и элементов панели. Я получаю ту же проблему, если я запускаю команду xrandr не убив сначала lxpanel , поэтому я предполагаю, что команда xrandr каким-то образом не «ждет» команд kill?

Или есть другая причина?

Редактировать: добавление sleep 3 между блоками кода решило проблему, хотя я до сих пор не знаю, какова основная проблема. В любом случае, вот мой текущий скрипт для дальнейшего использования:

 #!/bin/bash # kill conky and lxpanel killall lxpanel killall conky sleep 4 # set monitor xrandr --output LVDS1 --mode 1366x768 --pos 1680x282 --output VGA1 --mode 1680x1050 --pos 0x0 sleep 4 # restart awesome killall -HUP awesome # restart lxpanel and conky sleep 4 lxpanel -p LXDE & conky & 

Post-Edit: Проблема не может считаться полностью решенной в конце концов. Иногда мне приходится kill xinit после запуска и startx снова, чтобы он работал. Кажется, есть некоторые проблемы, связанные с временем простоя. Излишне говорить, что я понятия не имею, что.

Первые 4 команды должны выполняться последовательно, а следующий не должен запускаться до тех пор, пока предыдущий не завершится. Поскольку вы знакомы с последними 2 командами, у меня возникнет соблазн вставить там инструкцию сна. Использование сна таким образом – это немного взломать, но позволит вам подтвердить свою теорию, сыграв с количеством времени, чтобы спать. Поскольку он работает в интерактивной оболочке, я не ожидал бы больше, чем сон, возможно, около 5 или около того.

 lxpanel -p LXDE & sleep 5 conky & 

Есть лучшие методы, такие как ожидание возврата lxpanel либо результата из lxpanel что означало бы, что все закончилось, но я не знаком с lxpanel .