Допустим ест такой простой код.
func main() {
	fmt.Println("start")
	defer func() {
        	fmt.Println("stop")
	}()
	Run()
	fmt.Scanln()
}
Запукается он в контенере. Если произодет ошибка в Run то оба сообщения будут высвечены и старт и стоп, а есля я сотанавливаю контейнер, то сообщения стоп не будет. 
Как сделать так что бы сотановка контенера коректно завершала программу? Ну или сообщение логировалось все равно.