aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
Здравствуйте, после обновления системы pacman -Syu неправильно работает команда запуска X сервера, если ее запускать по ssh. На машинах лежат ключи ssh, так что они общаются без пароля. С удаленной машины на другую удаленную машину выполняется команда: ssh [email protected] xinit `which /home/xbmc/start_video.sh` – :2 vt9 & Эта команда начинает выполяняться, я вижу как мерцает экран, но start_video.sh не запускается, вместо него срабатывает .xinitrc, в котором прописан запуск xbmc. Но если зайти на этот компьютер ssh [email protected] и там выполнить xinit `which /home/xbmc/start_video.sh` – :2 vt9 & то все отлично работает. Что за хрень? Вообще не пойму!! |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
1) Команда which вам в данном случае не нужна. which принимает как аргумент имя программы, ищет его по путям, указанным в $PATH, как это делает оболочка, и возвращает полный путь к программе, если его нашла. Например, $ which openbox /usr/bin/openbox xxx `which openbox` yyy xxx /usr/bin/openbox yyy 2) Опция – (два минуса) для многих программ служит признаком конца “чужих” опций и начала “своих”. Например, когда вы пишете startx /usr/bin/openbox -- :2 vt9 Поэтому, чтобы ssh не хватал их командной строки чужие опции, попробуйте ВСЮ команду, которую вы хотите выполнить через ssh, взять “вот в такие кавычки”. А если не моможет – ‘вот в такие’. |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
Спасибо, частично помогло, теперь удаленно я могу выполнить командуssh [email protected] "xinit /home/xbmc/start_video.sh -- :2 vt9" ssh [email protected] /home/xbmc/change_to_video.sh [[email protected] ~]$ cat change_to_video.sh #!/bin/bash F=/tmp/.X2-lock [ -f $F ] && read P < $F if [ -n "$P" -a -d "/proc/$P" ] then sudo chvt 9 else xinit /home/xbmc/start_video.sh -- :2 vt9 & fi Natrio а откуда ты столько знаешь, я тоже хочу, можно ссылку на литературу по линукс. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
А зачем в этом скрипте кавычки? Кавычки тут ни при чём. Скрипт выполняется, как и написано. Если что-то происходит не так, это вопрос уже к разнице в поведении терминала (что вряд ли), или (что скорей всего) в переменных окружения. Когда вы логинитесь и запускаете шелл, устанавливается довольно много этих переменных, и некоторых, повидимому, очень не хватает при запуске этого скрипта “просто так”, отдельно. Чтобы долго не гадать, можно найти различия экспериментально. Команда set без параметров выводит список всех переменных со значениями, команда sort поможет отсортировать строки по алфавиту (в данном случае как раз по именам переменных) для облегчения сравнения. То есть, в начало скрипта вставьте строку set|sort > ~/env_list.alone set|sort > ~/env_list.shell Теперь можно получить список отличий: cd ~ diff env_list.alone env_list.shell Что касается литературы по линуксу вообще, и по bash в частности, то её легко найти в сети – как “для общего развития”, так и по каждому конкретному вопросу, если задать его гуглу. Ну и некоторый опыт обычно помогает определить направление, куда копать, что искать и какие вопросы задавать поисковикам :) |
pztrn |
|
Темы:
23
Сообщения:
1436
Участник с: 20 сентября 2009
|
1. По шеллу - ABSG 2. У вас иксы в 9 терминале пускаются сами? Всмысле вы это не настраивали? Просто дефолтненько vt7 используется… |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
PoZiTPoHКак же не настраивал, у меня иксы запускаются и на vt7 и на vt8 и на vt9 (такая интересная трехиксовая система). Медиакомбайн делаю. А вот и настройки xinit /home/xbmc/start_video.sh – :2 vt9 Natrio попробую Ваш вариант. Объясните еще одну вещь, когда я выполняю команду локально - переменные окружения одни, а когда удаленно, то уже какой то другой набор переменных, откуда берутся другие? ssh их создает что ли ? или подключившись по ssh команда выполняется вообще в другой среде переменных? Я думал, что подконектившись на удаленный терминал я использую теже настройки, что и локально на той машине. |
pztrn |
|
Темы:
23
Сообщения:
1436
Участник с: 20 сентября 2009
|
SSH - это туннель, шифрующий данные (в сильнейшем упрощении). Он запускает еще один экземпляр shell-процессора (bash, zsh и прочие *sh) на удаленной стороне. Оттуда и берутся настройки ;) |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
PoZiTPoHТеперь все ясно. спасибо. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
PoZiTPoHЭто ещё я могу угадать, что сие расшифровывается как “Advanced Bash-Scripting Guide”, а гугл в ответ на такую аббервиатуру только всякую порнографию пишет :) |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
NatrioУ меня первая ссылка про библию.PoZiTPoHЭто ещё я могу угадать, что сие расшифровывается как “Advanced Bash-Scripting Guide”, а гугл в ответ на такую аббервиатуру только всякую порнографию пишет :) Вчера посмотрел первую лекцию от yandex по информационным технологиям. ОЧень познавательно http://company.yandex.ru/academic/kit/ |