# test_task_carbon_soft

Запуск клиента на линуксе(проверялось на ubuntu 22.04).
С помощью `nohup`:
1) Перейдите в папку со скриптом `cpu_utilization_script.sh`;
2) Перед началом, убедитесь, что у скрипта `cpu_utilization_script.sh` активен флаг "executable". Если же нет, то активруйте его;
3) Выполните команду `nohup ./cpu_utilization_script.sh &`;
4) Не закрывайте консоль.
Это запустит скрипт в фоне.

С помощью `cron`:
1) Перейдите в папку со скриптом `cpu_utilization_script.sh`;
2) Перед началом, убедитесь, что у скрипта `cpu_utilization_script.sh` активен флаг "executable". Если же нет, то активруйте его;
3) Убедитесь что у вас установлен `crontab` выполнив `crontab -?`. Если он установлен, в качестве ответа вы получите список доступных флагов;
4) Выполните `crontab -e`. В конец открывшегося файла добавьте строку `* * * * * full_path`, где full_path - абсолютный путь до скрипта, например `/home/user/project/client/cpu_utilization_script.sh`, и сохраните его;
5) Убедимся, что наша задача заведена выполнив команду `crontab -l`. Если все успешно, то последняя строка будет той, которую добавили на прошлом шаге.
Это позволит нам автоматически запускать скрипт в фоне по расписанию и перезапускать если он упал.

Демонизировать скрипт не удалось из-за ограничений по использованию sudo.

Запуск сервера.
С помощью скрипта `run_server.sh`:
1) Установите Python 3.10.4. Также проверял на 3.10.12, на остальных версиях работоспособность не гарантируется;
2) Убедитесь что установлен `python3-venv`, если нет - установите;
3) Выставить скрипту `run_server.sh` флаг на запуск(`x`);
4) Выполните скрипт `run_server.sh` для запуска сервера со стандартными параметрами; ip - 127.0.0.1, port - 8001.
5) Также скрипт с принимает два параметра `run_server.sh SERVER_IP SERVER_PORT`: SERVER_IP - ip адресс сервера и SERVER_PORT - port сервера, например `./run_server.sh 127.1.2.3 1234`
Скрипт создаст виртуальное окружение в папке `cpu_checker`.

Вручную
1) Установите Python 3.10.4. Также проверял на 3.10.12, на остальных версиях работоспособность не гарантируется;
2) Убедитесь что установлен `python3-venv`, если нет - установите;
3) На основе вышеуказанной версии Python, в папке server, создайте виртуальное окружение командой `python3 -m venv venv`;
4) Активируйте виртуальное окружение командой `source venv/bin/activate`;
5) Установите зависимости из файла requirements.txt. `pip3 install -r requirements.txt`;
6) Выполните миграции командой `python3 ./manage.py migrate`;
7) Из папки `cpu_checker` запустите сервер командой `python3 ./manage.py runserver`;
8) Или запустите сервер на нужном ip и port `python3 ./manage.py runserver SERVER_IP:SERVER_PORT`, где SERVER_IP - ip адресс сервера, SERVER_PORT - порт сервера.
При выполнении шага 6, БД создаться автоматически в папке `cpu_checker` с именем `db.sqlite3`.
