Eu tenho um script de trigger do tmux como mencionado abaixo, rodando em Raspbian Wheezy 7.10 :
Eu verifiquei o script em execução da seguinte forma:
- primeiro executando o script python
sudo /home/pi/bin/myscript.py
e, em seguida, digitando o comando tmux como mencionado acima tmux new-session -d -s sess1 'sudo /home/pi/bin/myscript.py'
. As duas vezes que o script é executado.
Since if a User can type and run this scripts, it is a safe assumption that the complete thing can be written as a bash script. Hence the above mentioned script 'sess'
Eu dei a este arquivo direitos de execução através de chmod +x /home/pi/bin/sess
Eu também tentei executar o script usando rc.local
da seguinte forma:
# in the rc.local file
/home/pi/bin/sess &
exit 0
O arquivo rc.local
é acionado por um fato, já que configurei o parâmetro WLAN na inicialização para que meu Pi participe de uma rede ad-hoc.
I can clearly verify this since I can ssh
into my Pi.
Observações:
Após a reinicialização, o script não é acionado. Isso pode ser verificado pelo comando tmux ls
, que diz Connection to Server Failed
. Também verifiquei usando sudo tmux ls
incase se o superusuário tiver a sessão tmux, mas a saída for a mesma.
Eu tentei executar o script em crontab
usando:
sudo crontab -u pi -e
## inside the crontab
@reboot /home/pi/bin/sess &
Eu também tentei criar um cron job para o superusuário
sudo crontab -e
@reboot /home/pi/bin/sess &
Observações:
Após a reinicialização, o script não é executado.
Eu criei um sub-shell no rc.local
para capturar qualquer atividade do script que está sendo acionada
# in the rc.local file
(/home/pi/bin/sess &) > /tmp/tmux.log
Observações
na reinicialização e cat /tmp/tmux.log
não há nada dentro do arquivo. O arquivo tmux.log
é criado embora
Inferências
Ironicamente, se fizer algo como sudo /etc/rc.local
ou sudo ~/bin/sess
enquanto eu estiver conectado, o script será acionado perfeitamente, pois posso realmente anexar a sessão usando sudo tmux a
e também ver a listagem sudo tmux ls
Mas como ele não pode ser executado no tempo de inicialização, a finalidade é inútil se não for acionada na inicialização.
Também verifiquei as variáveis de ambiente $PATH
, o que realmente mostra /home/pi/bin
.
Eu também tentei usar o caminho completo para o tmux em todos os meus scripts, desde que as variáveis de ambiente não sejam classificadas. Mas sem sorte
$ which tmux
$ /usr/bin/tmux
Ironically, If I follow such a step on my Ubuntu 14.04 LTS laptop the script gets triggered through my rc.local
file
Outras opções
-
Talvez tente um script% daemon init.d/
, mas não tenho certeza se rc.local
e crontab
não podem lidar com isso, então talvez um daemon também não use
-
Não tenho ideia se um ~/.tmux.conf
é bom.
Nota
Como você pode ver, é para o Raspberry Pi 2 Modelo B. Fiz essa pergunta no respectivo fórum, mas o moderador sugeriu que fizesse essa pergunta aqui. O segmento é aqui
também examinei este Thread no Linux Unix e tentou todos os resultados, mas, no entanto, o script falha na reinicialização