команда оболочки `tmux` выдает ошибку `can't use /dev/tty`

  1. Искать файлы '* .adoc'
  2. Проверить, является ли filename.adoc более новым, чем filename.html
  3. если да, запустить asciidoctor на нем

     find. -name '* .adoc' | пока читал ФАЙЛ; do ["$ {FILE}" -nt "$ {FILE% adoc} html"] && asciidoctor -q "$ {FILE}"; done 
     

или вставить скрипт:

#! /bin/bash
find . -name '*.adoc' | while read FILE; do
    if [ "${FILE}" -nt "${FILE%adoc}html" ]; then
        asciidoctor -q "${FILE}"
    fi
done

Однострочный скрипт или скрипт можно запускать из crontab каждую минуту:

crontab -e

добавить строку

* * * * * /home/joe/update_adoc.bash
3
13.11.2017, 08:10
2 ответа

[Этот ответ может быть -не по теме, но этот пост является первым, когда я погуглил "tmux /dev/tty error".]

Я столкнулся с аналогичной проблемой при доступе через SSH и нашел «простое -решение» ==> для перезапуска соединения SSH :)Вот как я сначала пришел к ошибке /dev/tty:

  • SSH-доступ к системе Ubuntu,
  • установлен как Windows WSL на компьютере с Win -10
  • Сеанс SSH инициализируется другой системой WSL на другом компьютере с Windows 10 через ConEmu

Я только что запустил SSH и потратил несколько минут на копирование моих старых настроек в ~/.tmux.confи установку fish + omf.


Инициализация нового сеанса SSH решила все мои проблемы.

В том же сеансе SSH что-то пошло не так ==> Мне было выдано следующее сообщение об ошибке:

open terminal failed: can't use /dev/tty

Тем не менее, без изменения какой-либо конкретной настройки запуск новой «вкладки» в ConEmu и инициализация другого сеанса SSH на той же целевой машине решили все проблемы. Не более /dev/ttyошибка.

1
27.01.2020, 21:35

Ошибка.

( exec </dev/tty; TMUX= tmux )

Объяснение. Вам нужно, чтобы все 3 fds указывали на TTY, чтобы tmux работал.

ls -la /proc/$$/fd; ( exec </dev/tty; ls -la /proc/$$/fd; TMUX= tmux )

Неудачная попытка исправления. Недостаточно указывать на один и тот же tty. &0, &1 и &2 должны иметь общий указатель на tty.

export TTY=$(tty); ls -la /proc/$$/fd; ( exec </dev/tty; ls -la /proc/$$/fd; exec <$TTY; ls -la /proc/$$/fd; TMUX= tmux )

Исправление . &1 по-прежнему указывает на то же самое, на что раньше указывал &0, так что используйте его для возобновления.

( exec </dev/tty; exec <&1; TMUX= tmux )
0
27.01.2020, 21:35

Теги

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