Сеанс tmux закрывается при закрытии терминала ssh

Что я пытаюсь сделать: я пытаюсь выполнить пару команд bash на удаленной машине, используя ssh, и я хочу, чтобы эти команды завершали выполнение даже после завершения сеанса ssh. закрывается в середине исполнения.

Что я сделал до сих пор: Я использую Putty для подключения к ssh (одна из причин использования putty в том, что одна машина — Windows, а удаленная машина — mac-os и мне нужен способ инициировать ssh через команду Python). Я передаю файл command.txt, и он содержит все команды, которые я хочу выполнить.

putty -ssh [email protected] -m command.txt ( not real ip)

command.txt: выглядит так:

export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux -c 'queue.sh'
sleep 100

После подключения к ssh, чтобы мой скрипт/команды продолжали работать на удаленной машине даже после закрытия ssh-сессии на другой машине, я использую tmux.

Но проблема в том, что даже после использования tmux процессы, вызываемые queue.sh, завершаются, как только я закрываю сеанс ssh.

я тоже пробовал

export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux
queue.sh
sleep 100

делает то же самое.

Что я также пробовал: Если я просто передаю следующие команды с помощью ssh (в command.txt)

export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux

а затем вручную введите queue.sh в терминал tmux, в этом случае я могу закрыть ssh-терминал, и удаленная машина продолжит выполнение процессов.

Есть предложения? Я хочу иметь возможность передавать все через файлы сценариев и поддерживать работу процессов на удаленной машине (mac-os) даже после закрытия сеанса ssh на другой машине .

Спасибо


person user2259784    schedule 01.04.2014    source источник


Ответы (1)


Параметр -c на самом деле не запускает новый сеанс; это для совместимости с другими оболочками, если вы используете tmux в качестве оболочки входа. Чтобы запустить queue.sh в сеансе tmux, попробуйте запустить tmux с

tmux new-session queue.sh
person chepner    schedule 01.04.2014
comment
Здорово! спасибо, Чепнер. (У меня недостаточно рейтинга, чтобы оценить этот ответ.) - person user2259784; 01.04.2014
comment
@user2259784 user2259784 ты делаешь сейчас. Было бы здорово, если бы вы также могли принять этот ответ, предполагая, что он решил вашу проблему, чтобы вопрос можно было пометить как решенный. - person terdon; 21.11.2016