Tmux автозапуск при подключении по ssh

У меня часто бывает, что я подключусь к серверу по ssh и запускаю какую либо задачу (копирование, проверки) которая может затянуться. Потом внезапно либо ssh отвалится ибо подключился с ноутбука или, что чаще всего случается — перевожу комп в спячку напрочь забыв про то, что там где-то что-то на сервере выполняется. Выполняемая на сервере задача при этом само собой прерывается. Все это от того, что я забываю запустить tmux при подключении. Чтобы этого не происходило, я настроил автозапуск tmux при подключении по SSH.

«Настроил» сильно сказано. По факту, в зависимости от того, какой shell используете нужно добавить небольшой кусочек кода в .bashrc или .zshrc.

Bash

Если у вас bash, то добавляем следующее в ~/.bashrc:

Zsh
В случае, если у вас zsh, то в ~/.zshrc:

Разница между версией для bash и zsh в одной строке. В bash which возвращает путь до исполняемого файла, вне зависимости от наличия alias на него. В zsh же, which — это встроенная команда, которая в случае наличия alias на команду вернет его. Вот наглядно:

Alias на tmux сделан для того, чтобы в случае если я не забуду запустить tmux после подключения к серверу, сессия создалась с правильным названием, и при повторном подключении к серверу «приатачились» к правильной tmux сессии.

Делаем alias для Tmux

Если запустите tmux самостоятельно, то надо чтобы сессия создалась с правильным названием.

Для bash:

Для zsh: