Наиболее оптимизированное решение для устранения неполадок любого отсоединенного сценария с использованием tmux потребует от вас использования следующей опции в вашем сценарии запуска:
#!/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
Теперь следующий сценарий был вызван из rc.local
, и Pi был перезагружен.В конце концов, при перезагрузке, когда вы подключаете сеанс с помощью sudo tmux a
После получения сеанса tmux с 2 окнами
Первоначальный сеанс - это просто пустой сеанс, запущенный из-за tmux new-session - d -s sess1
и еще один из команды tmux new-window
, которую можно открыть с помощью CTRL + B + 1 , поскольку он был упомянут как sess1: 1
( примечание: Горячие клавиши могут различаться для пользователя, горячая клавиша tmux по умолчанию (bindkeys) - CTRL + ] B )
Если сценарий завершается с ошибкой, Окно покажет вам, где была ошибка в моем случае ошибки в моем сценарии Python, а внизу будет показано Панель Мертвый . Следовательно, из-за ошибок в сценарии сеанс tmux был завершен без предоставления какого-либо соответствующего журнала (обратной связи), следовательно, в вышеупомянутом / tmp / tmux не было зарегистрировано никаких выходных данных.log
Следовательно, всегда рекомендуется использовать set-stay-on-exit на
при запуске сценариев с tmux в случае, если есть ошибки в сценарии в автономном режиме