¿Cómo implementar un script de python usando una herramienta de CI como GitLab?

La teoría es que la herramienta puede build / eliminar pelusa / probar el código en mi repository, y luego implementarlo en producción automáticamente bajo ciertas condiciones (p. Ej .: la extracción se realizó en la twig master , en lugar de en staging ).

Sin embargo, la parte de "implementación" que parece fácil no me resulta tan fácil de entender.

Tengo un VPS que ejecuta Ubuntu 16.04, y mi aplicación es un bot de Telegram que se ejecuta con Python. Me encantaría que replace el código anterior por el nuevo fuera tan fácil como emitir el git pull origin master y ejecutar python3 main.py , pero el script necesita ser recargado para tener en count los cambios.

¿Hay alguna manera de volver a cargar automáticamente el script sin finalizar el process? De lo contrario, ¿cuál es el enfoque recomendado para (search y) finalizar el process actual, de modo que el cornetworkingor de CI pueda actualizar el código y reiniciar el script?