Вы можете перехватить SIGINT
в свой скрипт и установить условие выхода из цикла. Запуск вашей программы с setsid
предотвращает получение SIGINT
от CTRL + C
#! /bin/bash
STOPFILE=/tmp/stop_my_program
rm -f $STOPFILE
trap "touch $STOPFILE" INT
while [ ! -f $STOPFILE ]
do
setsid python3 my_program.py
done
rm -f $STOPFILE