Отправьте команду в выполнение tmux сессия (как экран-X)

Вы могли бы хотеть выяснить то, что точно ест тот возврат путем первого запущения/etc/init.d скрипта непосредственно с (sudo как требуется) sh -x /etc/init.d/celeryd start. Если это находится в сценарии оболочки, необходимо видеть его этот путь. Если daemon самостоятельно ожидает новой строки, прежде чем возврат, Ваш ответ будет celeryd конкретный и мог бы извлечь выгоду из прокручивания ее strace или просто с a < /dev/null добавленный так, чтобы это не имело доступа к стандарту, вводят через Ваш терминал.

Другой "блуждает в темноте" вещь попробовать: выполненный ssh с -nt опция отключить терминальное выделение и стандартный вход.

6
27.12.2011, 00:43
3 ответа

Это справедливо tmux, дополнительно с -t опция выбрать сессию (соответствие -S для Экрана).

tmux set-environment DISPLAY $DISPLAY
8
27.01.2020, 20:24

Ответ на часть вопроса об обновлении среды: tmux по умолчанию наследовал определенные переменные от среды клиента при создании или повторном прикреплении сессии.

Из страницы справочника:

Опция сессии среды обновления может использоваться для обновления среды сессии от клиента, когда новая сессия создается или повторно прикрепленное старое.

Значение по умолчанию является "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY ДИСПЛЕЯ".

Таким образом, Вы не должны делать ничего для получения обновленного DISPLAY установка при повторном прикреплении сессии.

Обратите внимание, что это только вступает в силу для новых окон или областей, которые Вы создаете на старой сессии, но не существующих окнах.

1
27.01.2020, 20:24

Если вы хотите автоматически обновлять $DISPLAY для каждого из ваших процессов оболочки в сеансе tmux, вы можете проверить мое решение :https://www.reddit.com/r/tmux/comments/cd3jqw/automatically_update_display_for_each_tmux_pane/

Подводя итоги:

Добавить строку в tmux.confset-hook -g client-attached 'run-shell /bin/update_display.sh'

Создать скрипт /bin/update _display.sh:

# tmux will only send-keys to the following active processes
shell_grep="bash|zsh"

# Update $DISPLAY for each tmux pane that is currently running one of the $shell_grep processes
tmux list-panes -s -F "#{session_name}:#{window_index}.#{pane_index} #{pane_current_command}" | \
    grep -E $shell_grep| \
    cut -f 1 -d " " | \
    xargs -I PANE tmux send-keys -t PANE 'eval $(tmux showenv -s DISPLAY)' Enter
2
27.01.2020, 20:24

Теги

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