Вот написал я свое приложение FastAPI, задеплоил его на сервере и даже там запустил и оно даже заработало. Но вот незадача - я закрыл соединение в терминале по SSH и моё приложение так же завершилось...
Не порядок. Следовательно нужно сделать так чтобы можно было запустить это приложение как сервис, так же как я запускаю postgres или nginx:
systemctl start postgresql.service (как-то так)
Для этого нужно написать специальный файл, который и будет запускать наше приложение. Располагается этот файл по адресу (или пути) /etc/systemd/system/<имя_сервиса_точка_service>
Где прописываем пользователя, от имени которого будет запускаться сервис. Рабочую директорию приложения, там где лежит файл main.py. Путь до исполняемого файла fastapi (он лежит в virtual environment, у меня это директория в корне проекта .venv) с ключами выполнения.
После написания данного файла перезагружаем systemd:
sudo systemctl daemon-reload
Теперь можно запустить сервис:
sudo systemctl start fastapp.service
В любом случае, ошибки не высветится, поэтому мы не можем быть уверенными в том что приложение запущено. Это можно посмотреть командой:
sudo systemctl status fastapp.service
И открыв в браузере http://<ip_address_my_hosting> можно будет увидеть главную страницу приложения:
Так же, чтобы приложение запускалось автоматически, после (допустим) перезагрузки сервера:
sudo systemctl enable fastapp.service
Которая выведет сообщение о создании ссылки на сервис
Если хотим запретить эту ссылку:
sudo systemctl disable fastapp.service
Ну вот, как-то так...