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: