中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kill命令在Java應用中使用的注意事項有哪些

發布時間:2021-11-19 16:46:49 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

本篇內容主要講解“kill命令在Java應用中使用的注意事項有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“kill命令在Java應用中使用的注意事項有哪些”吧!

linux 中常見的信號

1 SIGHUP 掛起進程

2 SIGINT 終止進程

3 SIGGQUIT   停止進程

9 SIGKILL    無條件終止進程

15 SIGTERM 盡可能終止進程

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

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

19 SIGCONT   繼續運行停止的進程

在Java中的應用

創建一個SpringBoot的web應用

啟動類如下,添加了一個鉤子函數,當進程關閉時,將會調用該鉤子函數。

@SpringBootApplicationpublic 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 web21060 web-1.0.jar

使用kill -3

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

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

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

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 web21470 web-1.0.jarlgj@lgj-Lenovo-G470:~/aProject/web/target$ kill 21470lgj@lgj-Lenovo-G470:~/aProject/web/target$

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

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 web21568 web-1.0.jarlgj@lgj-Lenovo-G470:~/aProject/web/target$ kill -9 21568

最后的日志并沒有輸出鉤子函數中的內容

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

到此,相信大家對“kill命令在Java應用中使用的注意事項有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尉犁县| 沁阳市| 嵊州市| 胶州市| 堆龙德庆县| 家居| 阿勒泰市| 富平县| 城固县| 东城区| 太保市| 张掖市| 青田县| 赤壁市| 南涧| 霍林郭勒市| 班戈县| 乐亭县| 秦皇岛市| 无锡市| 翼城县| 通河县| 四平市| 五原县| 绥滨县| 阿克苏市| 海原县| 奇台县| 沈丘县| 卓资县| 革吉县| 灌云县| 军事| 衡南县| 本溪| 古田县| 青海省| 郎溪县| 六枝特区| 清水河县| 会泽县|