modbus_test/run.sh

71 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Функция для отображения помощи
usage() {
echo "Usage: $0 [--test]"
exit 1
}
# Разбираем аргументы командной строки
TEST_MODE=0
while [[ "$1" != "" ]]; do
case $1 in
--test ) TEST_MODE=1
;;
* ) usage
exit 1
esac
shift
done
# Функция для очистки запущенных процессов при завершении
cleanup() {
echo "Остановка серверов..."
if [[ -n "$SERVER_PID" ]]; then
kill $SERVER_PID
wait $SERVER_PID 2>/dev/null
fi
if [[ -n "$TEST_SERVER_PID" ]]; then
kill $TEST_SERVER_PID
wait $TEST_SERVER_PID 2>/dev/null
fi
echo "Серверы остановлены."
}
# Устанавливаем ловушку для сигналов выхода
trap cleanup EXIT
# Устанавливаем команду запуска для pybullet_server
PYBULLET_COMMAND="poetry run python utils/pybullet_server.py"
# Добавляем флаг --test, если включен режим тестирования
if [ $TEST_MODE -eq 1 ]; then
PYBULLET_COMMAND+=" --test"
fi
# Запуск сервера в фоновом режиме с учетом флага --test
$PYBULLET_COMMAND &
SERVER_PID=$!
# Проверяем, был ли сервер запущен успешно
if ! kill -0 $SERVER_PID 2>/dev/null; then
echo "Ошибка при запуске pybullet_server"
exit 1
fi
# Запуск тестового серверного скрипта, если требуется режим тестирования
if [ $TEST_MODE -eq 1 ]; then
poetry run python utils/test_socket_server.py &
TEST_SERVER_PID=$!
# Проверяем, был ли тестовый сервер запущен успешно
if ! kill -0 $TEST_SERVER_PID 2>/dev/null; then
echo "Ошибка при запуске test_socket_server"
exit 1
fi
poetry run python main.py --mode test
else
poetry run python main.py
fi