November 1, 2024
Как я устал, запускать все сессии руками
Привет, владелец фермы или одинокий путник в мире майнинга альта.
Возможно, у тебя как и у меня есть сервер, скорее всего даже на Ubuntu?
О да, и ты как я пользуешься tmux потому что есть ощущение что удобнее уже и не придумать.
Ну тогда ты по адресу, садись, смотри. Я написал себе код, который при смерти tmux или сервера разворачивает все без особых проблем.
#!/bin/zsh # Название Tmux сессии SESSION_NAME="MAIN"# Основная директория BASE_DIR="soft" # Директория где лежит весь софт if [[ ! -d "$BASE_DIR" ]]; then echo "Ошибка: Директория $BASE_DIR не найдена." exit 1 fi echo "Создание новой Tmux сессии: $SESSION_NAME..." tmux new-session -d -s $SESSION_NAME run_scripts() { local dir="$1" local dir_name=$(basename "$dir")echo "Обработка директории: $dir_name"# Создаем новое окно с zsh echo "Создание нового окна для $dir_name..." tmux new-window -t $SESSION_NAME -n "$dir_name" tmux send-keys -t $SESSION_NAME:$dir_name "cd $dir" C-m tmux send-keys -t $SESSION_NAME:$dir_name "git pull" C-m sleep 2 # Задержка if [[ -f "$dir/main.py" ]]; then echo "Запуск main.py в $dir_name..." tmux send-keys -t $SESSION_NAME:$dir_name "source venv/bin/activate" C-m sleep 2 # Задержка после активации виртуального окружения tmux send-keys -t $SESSION_NAME:$dir_name "python3 main.py" C-m elif [[ -f "$dir/bot.py" ]]; then echo "Запуск bot.py в $dir_name..." tmux send-keys -t $SESSION_NAME:$dir_name "source venv/bin/activate" C-m sleep 2 # Задержка после активации виртуального окружения tmux send-keys -t $SESSION_NAME:$dir_name "python3 bot.py" C-m elif [[ -f "$dir/index.js" ]]; then echo "Запуск index.js в $dir_name..." tmux send-keys -t $SESSION_NAME:$dir_name "node index.js" C-m elif [[ -f "$dir/main.js" ]]; then echo "Запуск main.js в $dir_name..." tmux send-keys -t $SESSION_NAME:$dir_name "node main.js" C-m else echo "Не удалось найти файлы для запуска в $dir_name. Окно останется открытым." tmux send-keys -t $SESSION_NAME:$dir_name "echo 'Не удалось запустить ни один скрипт в $dir_name'" C-m fi } for dir in "$BASE_DIR"/*; do if [[ -d "$dir" ]]; then run_scripts "$dir" # Задержка перед переходом к следующей директории (например, 2 секунды) sleep 2 else echo "Директория $dir не найдена" fi done echo "Подключение к Tmux сессии..." tmux attach -t $SESSION_NAME
Приходи к нам в канал https://t.me/mainecode
или к нам в чатик http://t.me/mainechatik
ну или можешь подписаться на канал про фильмы и сериалы https://t.me/chto_smotrel