最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Java中使用kill命令時需要注意哪些事項

在Java中使用kill命令時需要注意哪些事項?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)建站專注于岫巖網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供岫巖營銷型網(wǎng)站建設,岫巖網(wǎng)站制作、岫巖網(wǎng)頁設計、岫巖網(wǎng)站官網(wǎng)定制、小程序設計服務,打造岫巖網(wǎng)絡公司原創(chuàng)品牌,更為您提供岫巖網(wǎng)站排名全網(wǎng)營銷落地服務。

kill在linux系統(tǒng)中是用于殺死進程。

kill pid [..]

kill命令可將指定的信號發(fā)送給相應的進程或工作。 kill命令默認使用信號為15,用于結(jié)束進程或工作。如果進程或工作忽略此信號,則可以使用信號9,強制殺死進程或作業(yè).

因此,如果確保將進程殺死,可以使用-9參數(shù)

kill -9 pid [..]

linux 中常見的信號

 1   SIGHUP             掛起進程

 2   SIGINT               終止進程

 3   SIGGQUIT    停止進程

 9   SIGKILL     無條件終止進程

15  SIGTERM          盡可能終止進程

17  SIGSTOP           無條件停止進程,但不是終止

18  SIGTSTP   停止或者暫停進程,但不終止進程

19 SIGCONT   繼續(xù)運行停止的進程

在Java中的應用

創(chuàng)建一個SpringBoot的web應用

啟動類如下,添加了一個鉤子函數(shù),當進程關閉時,將會調(diào)用該鉤子函數(shù)。

@SpringBootApplication
public class WebApplication {

 public static void main(String args[]){

 SpringApplication.run(WebApplication.class,args);

 Runtime.getRuntime().addShutdownHook(new Thread(){

 @Override
 public void run() {
 System.out.println("do ShutdownHook.......... ");
 }
 });
 }
}

使用maven打包。

mvn package

測試kill -3 

啟動應用

這里注意,如果使用相對路徑啟動應用,則jps看到的進程名稱為jar,使用絕對路徑如下則顯示完整的jar名稱:web-1.0.jar。

java -jar ~/aProject/web/target/web-1.0.jar

查看進程pid

lgj@lgj-Lenovo-G470:~/aProject/web/target$ jps | grep web
21060 web-1.0.jar

使用kill -3 

lgj@lgj-Lenovo-G470:~/aProject/web/target$ kill -3 21060

可以看到啟動界面打印了Java應用的堆棧信息。打印的是收到-3信號時刻的線程信息。

在Java中使用kill命令時需要注意哪些事項

如果使用以下方式啟動應用

nohup java -jar ~/aProject/web/target/web-1.0.jar &
lgj@lgj-Lenovo-G470:~/aProject/web/target$ ls -l |grep nohup.out 
-rw------- 1 lgj lgj 22811 Jun 9 00:41 nohup.out

可以看到啟動所在的目錄多了一個文件nohup.out。該文件記錄了應用啟動運行過程中的日志。

nohup 命令 & ;

&表示以后臺方式運行應用。但如果退出關閉啟動的控制臺,進程將會停止。

nohup + &也是以后臺方式運行應用,但是退出關閉啟動的控制臺,進程不會停止。且進程日志將會輸出到nohup.out中。

此時使用kill -3。打印的線程信息可以到該nohup.out中查看。

測試kill 和kill -9

啟動應用

java -jar ~/aProject/web/target/web-1.0.jar

使用kill pid殺死進程

lgj@lgj-Lenovo-G470:~/aProject/web/target$ jps | grep web
21470 web-1.0.jar
lgj@lgj-Lenovo-G470:~/aProject/web/target$ kill 21470
lgj@lgj-Lenovo-G470:~/aProject/web/target$

可以看到輸出日志中輸出了鉤子函數(shù)中所打印的

do ShutdownHook..........

2019-06-09 01:18:28.610  INFO 21470 --- [           main] com.demo.web.WebApplication              : Started WebApplication in 4.585 seconds (JVM running for 5.274)
do ShutdownHook..........
2019-06-09 01:18:41.381  INFO 21470 --- [       Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

使用kill  -9  pid殺死進程

lgj@lgj-Lenovo-G470:~/aProject/web/target$ jps | grep web
21568 web-1.0.jar
lgj@lgj-Lenovo-G470:~/aProject/web/target$ kill -9 21568

最后的日志并沒有輸出鉤子函數(shù)中的內(nèi)容

2019-06-09 01:20:37.579  INFO 21568 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8452 (http) with context path ''
2019-06-09 01:20:37.585  INFO 21568 --- [           main] com.demo.web.WebApplication              : Started WebApplication in 4.171 seconds (JVM running for 4.812)
Killed
 

總結(jié)

在使用kill操作java應用時

1.kill -3 pid可以打印當前進程的線程信息,但是不會關閉Java應用!

2.kill pid 也就是kill -15 pid ,將會調(diào)用鉤子函數(shù)ShutdownHook,一般ShutdownHook中會進行一些操作,比如保存數(shù)據(jù),關閉連接等。

3.kill  -9 pid.不會調(diào)用鉤子函數(shù)ShutdownHook。

看完上述內(nèi)容,你們掌握在Java中使用kill命令時需要注意哪些事項的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享題目:在Java中使用kill命令時需要注意哪些事項
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/goopdi.html