A solução mais otimizada para solucionar problemas de qualquer script desanexado usando tmux exigirá que você use a seguinte opção em seu script de acionamento:
#!/bin/bash
# this script is called "sess"
tmux new-session -d -s sess1
# this statement is a life-saver for tmux detached sessions
tmux set-option -t sess1 set-remain-on-exit on
# In my case running the script in a new window worked
tmux new-window -d -n 'nameofWindow' -t sess1:1 'sudo /home/pi/bin/script.py'
exit 0
Agora, o script a seguir foi chamado do rc.local
e o Pi foi reinicializado. Eventualmente na reinicialização quando você anexa a sessão usando sudo tmux a
Uma vez obtém uma sessão do tmux com 2 janelas
-
A primeira é apenas uma sessão vazia acionada devido a
tmux new-session -d -s sess1
-
e o outro do comando
tmux new-window
que pode ser aberto usando-se CTRL + B + 1 mencionado comosess1:1
( nota: Teclas de atalho podem variar para usuário, a tecla de acesso tmux padrão (bindkeys) é CTRL + B )
Inferência
Se o script terminar com um erro, a janela mostrará a você onde o erro estava no meu caso, erros no meu script Python e, na parte inferior, ele mostrará Painel está inoperante . Assim, devido a erros no script, a sessão tmux foi encerrada sem fornecer nenhum log relevante (feedback), portanto, nenhuma saída foi registrada no /tmp/tmux.log
Por isso, é sempre recomendado usar o set-remain-on-exit on
ao executar scripts com o tmux caso haja falhas no script no modo desanexado