Есть скрипт на питоне. Правильно завершается он так
# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
global continue_reading
print "Ctrl+C captured, ending read."
GPIO.cleanup();
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
Когда я сделал сервис systemd, то при
systemctl stop my_cool.service