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