Gracefully handle SIGIN, GPIO cleanup on exit