Автозагрузка TMUX

Данный способ не работает!!!

Один из вариантов автозагрузки. tmux устанавливается в качестве сервиса и загружается сразу после ОС. Затем уже в нём запускаются все необходимые приложения. Это избавляет от необходимости создавать множество systemd.сервисов на каждое приложение. Однако при желании можно их прописать стандартно и через tmux уже не запускать, а только читать sudo systemctl status application


Создаём сервис systemd

File: /etc/systemd/system/tmux.service

[Unit]
Description=tmux Service
After=syslog.target
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/tmux -f "/home/mining/.config/tmux/tmux_mining.conf" attach
ExecStop=/usr/bin/tmux kill-session -t mining

[Install]
WantedBy=multi-user.target

Создаём конфигурацию tmux

File: /home/mining/.config/tmux/tmux_mining.conf

#setting the delay between prefix and command
set -sg escape-time 1

# Set the default terminal mode to 256color mode
set -g default-terminal "screen-256color"

# set the status line's colors
set -g status-fg black
set -g status-bg green

new-session -s mining
rename-window "GPU"
send-keys -t mining "cd \"/home/mining/dstm\'s\ ZCash\ Nvidia\ Miner\ v0.5.3/\"" Enter
send-keys -t mining './zm.sh' Enter

new-window -n "top"
send-keys -t mining "top" Enter

select-window -t "GPU"

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

Добавить в файл: ~/.bashrc

# Startup TMUX on SSH

if [[ -z $TMUX && -n $SSH_TTY ]]; then
    me=$(whoami)
    real_tmux=$(command -v tmux)

    if [ -z $real_tmux ]; then
        echo "No tmux installed."
    fi

    export TERM="xterm-256color"

    if $real_tmux has-session -t $me 2>/dev/null; then
        $real_tmux attach-session -t $me
    else
        if [[ -n $SSH_TTY ]]; then
            (tmux new-session -d -s $me && tmux attach-session -t $me)
        fi
    fi
fi

tmux_run() {
    me=$(whoami)
    real_tmux=$(which tmux)
    args_num="$#"

    export TERM="xterm-256color"

    if [ "$#" -gt 0 ]; then
        $real_tmux "$*"
    else
        if [[ ! -z $TMUX ]]; then
            $real_tmux
        else
            if $real_tmux has-session -t $me 2>/dev/null; then
                $real_tmux attach-session -t $me
            else
                $real_tmux new -s $USER
                $real_tmux attach-session -t $me
            fi
        fi
    fi
}

alias tmux="tmux_run"

Полезное