Outra solução é criar tmux session na inicialização do sistema e executar alguns comandos dentro dele. Em seguida, você poderá se conectar a essa sessão, independentemente de estar em ssh ou gnome-terminal . tmux tem uso mais avançado, aqui vou tentar cobrir o nível mais básico.
1. Instale tmux : sudo apt update && sudo apt install tmux
2. Crie um arquivo de script executável auxiliar. Vamos supor que ele seja colocado no diretório $HOME do usuário e seja chamado de run-my-tmux-session :
touch "$HOME/run-my-tmux-session"
chmod +x "$HOME/run-my-tmux-session"
O script deve ficar assim:
#!/bin/bash
SESS="my-tmux-session" # Set the session name
if (tmux has-session -t "$SESS" 2> /dev/null); then # If session with name $SESS doesn't
echo "Session '$SESS' exists." # exists
else # create it and send few commands
tmux new-session -d -s $SESS
tmux send-keys -t $SESS "echo 'Now:'; while true; do printf '%(%c)T\r'; done" ENTER
fi
exit 0
3. Agora, se você executar ~/run-my-tmux-session , o script criará tmux session, chamado my-tmux-session e executará alguns comandos dentro dele. Aqui estão algumas dicas:
-
Para listar todas as sessões:
tmux ls -
Para matar uma sessão ou matar todas as sessões:
tmux kill-session -t <session-name> tmux kill-session # -
Para anexar a uma sessão existente:
tmux a -t <session-name> tmux attach -t <session-name> -
Para sair da sessão (desanexar), execute o comando a seguir de dentro da sessão:
tmux detach -
Para enviar um comando para uma sessão sem anexar:
tmux send -t <sess-name> "<commands>" ENTER tmux send-keys -t <sess-name> "<commands>" ENTER
4.A. Inicie a sessão tmux de Aplicativos de inicialização . Abra Aplicativos de inicialização e crie uma nova entrada. Seu comando deve ser (substitua <user> pelo nome de usuário atual) :
/home/<user>/run-my-tmux-session
4.B. Inicie a sessão tmux de crontab na reinicialização. Edite o arquivo crontab do usuário e adicione as seguintes linhas ao final (digite crontab -e para acessar o usuário crontab ) :
SHELL=/bin/bash
@reboot "$HOME/run-my-tmux-session"
4.C. Inicie a sessão tmux de /etc/rc.local . Esta é provavelmente a melhor solução! Edite o arquivo /etc/rc.local e adicione uma das seguintes linhas antes da última linha no arquivo, que é exit 0 (substitua <user> pelo nome de usuário atual) :
su -l <user> -c "/home/<user>/run-my-tmux-session"
sudo -iu <user> "/home/<user>/run-my-tmux-session"
Referências:
-
Inicie o Tmux | Script de login do Tmux | Criar sessão se | Comando no Tmux desanexado
-
ArchWiki Tmux | Um guia para personalizar seu Tmux.conf | Uma introdução suave ao Tmux
-
arquivo de configuração do TMUX | Outro exemplo | Atalhos do Tmux & amp; Cheatsheet , também aqui & amp; aqui
Leitura adicional: