Не существует соглашения для ненулевых значений, они обычно используются, чтобы сообщить причину завершения, и каждое приложение должно определить отображение кода ошибки и причины.В случае, если вы ссылаетесь, вы можете четко увидеть несколько строк над проверкой кода выхода 3, которая используется для указания того, что код изменился.
Т.е. в этом случае это даст поведение, котороеавтоматический перезапуск выполняется до тех пор, пока причиной его завершения было изменение кода и ничего больше.