現象
這幾天一直被一個問題困擾,每次springboot的tomcat啟動之后, 然后過了一段時間看, 進程就突然自己關閉掉了。 然后日志是:
ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6d5380c2: startup date [Sun Sep 24 17:51:04 CST 2017]; root of context hierarchy
o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
解法
網上也有說這個問題, 但是大多數說的是, 這個是一個非 web應用, 需要添加這個依賴,鏈接
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
要么就是添加tomcat的依賴。
但是搞了很多次發現原來是怎么樣,就是怎么樣, 直到看到這篇文章 , 才發現,原來是啟動方式的問題, 需要加 nohup, 然后加了 nohup, 果然就好了。這也糾正了我的一個誤區, 我一直以為 & 和 nohup是一樣的。
nohup 和 &
可以參考這篇文章
簡單來說就是:
- 用nohup運行命令可以使命令永久的執行下去,和用戶終端沒有關系,例如我們斷開SSH連接都不會影響他的運行,注意了nohup沒有后台運行的意思;&才是后台運行
- &是指在后台運行,但當用戶推出(掛起)的時候,命令自動也跟着退出
