Ноутбук вывод VGA случайным образом меняет имя между VGA1 и VGA2

Ну, для запуска не делает PHP shell_exec через bash в Вашем случае это делает его через sh. Это довольно очевидно из точного сообщения об ошибке. Я предполагаю, что этим управляет любая оболочка, указан в/etc/passwd для пользователя, которого веб-сервер выполняет как, и shell_exec не получает stderr, в сочетании с тем, что при выполнении PHP из командной строки, это просто выбывает к $ {SHELL}. При запуске как sh удар выключает много функций для лучше имитации поведения исходной оболочки sh. Определение источника .bashrc и .bash_profile почти наверняка среди тех, если ни по какой другой причине затем, потому что те файлы, вероятно, будут использовать определенный для удара синтаксис или расширения.

Я не действительно уверен в случае SSH, но судящий по плоскости $ подсказка, Вы могли бы очень хорошо пробегать sh туда, который аналогично объяснит поведение, которое Вы видите. Попробовать echo ${SHELL} видеть то, что в Вас действительно заскочили; это должно работать над всеми оболочками.

Тем не менее это кажется мне как действительно плохая идея зависеть от псевдонимов удара из Сценария PHP. Если то, что Вы хотите сделать, слишком длинно для установки приятно к shell_exec сам оператор (который должен только использоваться с большой осторожностью), делая функцию PHP для создания командной строки из параметров и называя, который является почти наверняка намного лучшим подходом, и он будет работать по существу, независимо от которого оболочка установлена, выбрана или как он настроен. С другой стороны, рассмотрите вызов внешнего файла сценария, который может быть записан в ударе и указать/bin/bash как его интерпретатор. Но затем Ваше приложение потребует, чтобы удар был установлен (который это, вероятно, уже делает, если это зависит от псевдонимов удара...).

11
20.02.2014, 07:53
3 ответа

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

Порядок обнаружения устройств случайный, от него нельзя зависеть.

1
27.01.2020, 19:59

используйте команду cvs для создания нового разрешения в вашей системе, например: cvs 1280 768 60 и введите команды xrandr --new mode, - add mode, затем укажите разрешение вашего рабочего стола, а затем вставьте обе команды в каталог linux nano / etc / gdm / Init / Default, чтобы он не изменился при перезагрузке.

0
27.01.2020, 19:59

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

0
27.01.2020, 19:59

Теги

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