sshfs через туннель mosh

Использование Chrome xdg-open открыть неизвестные файлы. Проблема с xdg-open сценарий - то, что попытки выяснить, какую настольную среду Вы имеете. Это делает это путем проверки

detectDE()
{
    if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
    elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
    elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
    fi  
}

Так как Openbox не устанавливает ни одной из этих переменных $DE пусто, и используется универсальный подход.

В версии 1.0 xdg-utils поведение по умолчанию похоже на это

open_generic()
{
    IFS=":"
    for browser in $BROWSER; do
        if [ x"$browser" != x"" ]; then

            browser_with_arg=`echo "$browser" | sed s#%s#"$1"#`

            if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1";
            else $browser_with_arg;
            fi  

            if [ $? -eq 0 ]; then exit_success;
            fi  
        fi  
    done

    exit_failure_operation_impossible "no method available for opening '$1'"
}

Вы видите, что это пытается открыть все с $BROWSER. Когда $BROWSER не установлен это будет установлено на firefox:mozilla:netscape.

Таким образом, проблема состоит в том, что эфир, необходимо установить DE, который затем приводит к новым проблемам (как программы, которые пытаются соединиться с сессией DE) или Вы устанавливаете Ваш $BROWSER к чему-то как exo-open, gnome-open или kfmclient exec.

Новый выпуск xdg-open кажется, фиксирует это, но это, кажется, берет навсегда.

5
27.05.2015, 11:54
2 ответа

еще невозможно. Существует запрос на вытягивание данных, которые, кажется, Работа для некоторых людей, хотя: Mosh / Pull / 583

Все кредиты отправляются в парень с именем из #mosh канал freenode

5
27.01.2020, 20:38

Похоже, что вы описываете программу A, работающую в фоновом режиме. Процесс по-прежнему может печататься на терминале, даже если он выполняется в фоновом режиме.

Bash пример:

#----background_program----#
#!/bin/bash

for ((i=0;i<=10;i++)); do
    echo "$i"
    sleep 5
done

exit 0

Вы можете запустить это в фоновом режиме, увидеть его вывод всплывает на ваш терминал. После первого выходного сообщения курсор снимается с подсказки. Затем вы можете выполнять другие команды на переднем плане, пока фоновая программа _ все еще выполняется:

./background_program &     # '&' to put in background
echo "wut"
echo "foo"
echo "bar"

Это даст вам что-то вроде:

sandbox@Dionysus:~$ ./background_program &
[1] 6197
sandbox@Dionysus:~$ 0
echo "wut"
wut
sandbox@Dionysus:~$ 1
echo "foo"
foo
sandbox@Dionysus:~$ 2
echo "bar"
bar
sandbox@Dionysus:~$ 3
4
5
6
7
8
9
10

Я сделал это в gnome-терминале, но я не думаю, что поведение является редким.

Если вы должны были выполнить свою программу A на переднем плане, вы получите именно то, что сказал @ Стивен, набрав. Программа не выполняется, так как команда загружается в буфер, а затем интерпретируется после завершения программы A.

-121--121397-

Причина этого в том, что один из скриптов входа на целевом сервере использует stty... для установки характеристик терминала. Команда завершается неуспешно, когда у нее нет tty, т.е. когда вы подключаетесь к scp .

Решение состоит в том, чтобы защитить stty так, чтобы он запускался только при наличии интерактивного сеанса. Существует ряд способов сделать это; Вот несколько примеров для оболочек типа bash/sh:

Ugly:

stty ... >/dev/null 2>&1

Works for me:

test -n "$PS1" && stty ...

Рекомендуется в другом месте SE :

# Check for a bash login shell
case $- in
  *i*) stty ... ;;
esac
-121--62067-

Я вижу «жалобы» на то, что мош не поддерживает X11 туннелирование; Я не ожидаю, что он поддерживает что-то, кроме интерактивного терминала.

Может немного улучшить поведение в программах gnome, если вы используете Files '' connect to server 'с url' ssh ://host '. То есть gnome vfs может обрабатывать зависания немного лучше. Или нет.

1
27.01.2020, 20:38

Теги

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