title: Terminating mvn spring-boot:run doesn't stop tomcat
body: <p>I can successfully start spring-boot with <code>mvn spring-boot</code>, the <a href="http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-manual-cli-installation" rel="noreferrer">documentation</a> mentions to gracefully exit the application hit <code>ctrl-c</code>. </p>
  
  <pre><code>Terminate batch job (Y/N)? Y
  </code></pre>
  
  <p>The maven process does terminate but Tomcat is still running and I can still hit the web-page. When I try to start spring-boot again it fails to start Tomcat because the port is in use.</p>
  
  <pre><code>  .   ____          _            __ _ _
   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
   =========|_|==============|___/=/_/_/_/
   :: Spring Boot ::  (v1.1.0.BUILD-SNAPSHOT)
  
  2014-05-02 12:13:57.666  INFO 6568 --- [           main] Example                                  : Starting Example on challenger with PID 6568 (E:\workspace\SpringBoot\target\cla
  sses started by steven in E:\workspace\SpringBoot)
  2014-05-02 12:13:57.707  INFO 6568 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWeb
  ApplicationContext@11ecab7c: startup date [Fri May 02 12:13:57 EDT 2014]; root of context hierarchy
  2014-05-02 12:13:58.097  INFO 6568 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean
  : class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfi
  gure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class pat
  h resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; laz
  yInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAuto
  ConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfig
  ure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
  2014-05-02 12:13:58.682  INFO 6568 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Server initialized with port: 8080
  2014-05-02 12:13:58.892  INFO 6568 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
  2014-05-02 12:13:58.892  INFO 6568 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.53
  2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
  2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1277 ms
  2014-05-02 12:13:59.453  INFO 6568 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
  2014-05-02 12:13:59.455  INFO 6568 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
  2014-05-02 12:13:59.570 ERROR 6568 --- [           main] o.a.coyote.http11.Http11NioProtocol      : Failed to start end point associated with ProtocolHandler ["http-nio-8080"]
  
  java.net.BindException: Address already in use: bind
          at sun.nio.ch.Net.bind0(Native Method)
          at sun.nio.ch.Net.bind(Net.java:344)
          at sun.nio.ch.Net.bind(Net.java:336)
          at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
          at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
          at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
          at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647)
          at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449)
          at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.&lt;init&gt;(TomcatEmbeddedServletContainer.java:69)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
          at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)
          at Example.main(Example.java:16)
  
  2014-05-02 12:13:59.571 ERROR 6568 --- [           main] o.apache.catalina.core.StandardService   : Failed to start connector [Connector[org.apache.coyote.http11.Http11NioProtocol-
  8080]]
  
  org.apache.catalina.LifecycleException: Failed to start component [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
          at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.&lt;init&gt;(TomcatEmbeddedServletContainer.java:69)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
          at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)
          at Example.main(Example.java:16)
  Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed
          at org.apache.catalina.connector.Connector.startInternal(Connector.java:1014)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          ... 18 common frames omitted
  Caused by: java.net.BindException: Address already in use: bind
          at sun.nio.ch.Net.bind0(Native Method)
          at sun.nio.ch.Net.bind(Net.java:344)
          at sun.nio.ch.Net.bind(Net.java:336)
          at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
          at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
          at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
          at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647)
          at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449)
          at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007)
          ... 19 common frames omitted
  
  2014-05-02 12:13:59.572  INFO 6568 --- [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat
  2014-05-02 12:13:59.580  INFO 6568 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/E:/workspace/SpringBoot/src/m
  ain/resources, file:/E:/workspace/SpringBoot/src/main/resources, file:/E:/workspace/SpringBoot/target/classes/, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring
  -boot-starter-web/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-web-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter/1.1.0.BUI
  LD-SNAPSHOT/spring-boot-starter-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot/1.1.0.BUILD-SNAPSHOT/spring-boot-1.1.0.BUILD-SNA
  PSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.1.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-1.1.0.BUILD-SNAPSHOT.jar, file:/C:
  /Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-logging-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.
  m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar, file:/C:/Users/steven/.m2
  /repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar, file:/C:/Users/st
  even/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar, file:/C:/Users/steven/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar, f
  ile:/C:/Users/steven/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.1.0.BUILD
  -SNAPSHOT/spring-boot-starter-tomcat-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/7.0.53/tomcat-embed-core-7.0.53.jar, f
  ile:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/7.0.53/tomcat-embed-el-7.0.53.jar, file:/C:/Users/steven/.m2/repository/org/apache/tomcat/embed/tomcat-e
  mbed-logging-juli/7.0.53/tomcat-embed-logging-juli-7.0.53.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar, fi
  le:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/co
  re/jackson-core/2.3.3/jackson-core-2.3.3.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-web/4.0.3.RELEASE/spring-web-4.0.3.RELEASE.jar, file:/C:/Users/steven/
  .m2/repository/org/springframework/spring-aop/4.0.3.RELEASE/spring-aop-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file
  :/C:/Users/steven/.m2/repository/org/springframework/spring-beans/4.0.3.RELEASE/spring-beans-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-cont
  ext/4.0.3.RELEASE/spring-context-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-core/4.0.3.RELEASE/spring-core-4.0.3.RELEASE.jar, file:/C:/Users
  /steven/.m2/repository/org/springframework/spring-webmvc/4.0.3.RELEASE/spring-webmvc-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-expression/4
  .0.3.RELEASE/spring-expression-4.0.3.RELEASE.jar]
  Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedde
  d.EmbeddedServletContainerException: Unable to start embedded Tomcat
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
  [INFO] ------------------------------------------------------------------------
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
  [INFO] BUILD SUCCESS
          at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:680)
  [INFO] ------------------------------------------------------------------------
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
  [INFO] Total time: 4.653 s
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:941)
          at org.springframework.boot.SpringApplication.run(SpringApplication.java:930)
          at Example.main(Example.java:16)
  Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
  [INFO] Finished at: 2014-05-02T12:13:59-05:00
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:106)
  [INFO] Final Memory: 16M/232M
  [INFO] ------------------------------------------------------------------------
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.&lt;init&gt;(TomcatEmbeddedServletContainer.java:69)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
          at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
          ... 7 more
  Caused by: java.lang.IllegalStateException: Tomcat connector in failed state
          at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:102)
          ... 12 more
  </code></pre>
  
  <p>To proceed I have to manually terminate the running process. Is this a bug or am I missing something?</p>