關於jvm的正常退出

2022-05-25 23:18:20 字數 669 閱讀 8079

我們在寫一些server程式的時候,往往希望在整個jvm退出(因為異常退出或者程序被kill)的時候,能釋放在使用的一些系統資源(資料庫連線,rpc鏈結等)  。

具體操作:

在程式啟動的時候,註冊hook,demo如下:

runtime.getruntime().addshutdownhook(new

thread()

}});

在程式的stop指令碼中使用

kill  -15  $ 來殺死程式,這樣,在jvm退出的時候,會將shutdownhook中的內容執行一遍,這樣就可以在裡面定義自己的資源釋放(一般是連線池)的操作了 。

不要使用kill -9  $  ,這個會直接殺死jvm的程序,hook是來不及執行的,kill後面的數字引數如下:

hup     1    終端斷線

int 2 中斷(同 ctrl + c)

quit 3 退出(同 ctrl + \)

term 15 終止

kill 9 強制終止

cont 18 繼續(與stop相反, fg/bg命令)

stop 19 暫停(同 ctrl + z)

預設的kill引數是 -15 (term) .

使用者非正常退出

判斷使用者非正常退出使用場景。比如 乙個賬號不能重複登入,這時就需要判斷使用者登入狀態。非正常退出情況 1.伺服器端系統異常。2.會話超時。3.未退出的情況下,關閉瀏覽器。4.使用者網路不穩定掉線。5.使用者在登入的狀態下,關機 掉電 了 通常的做法是 允許重複登陸,但是上乙個會話就終止了 擠掉上乙...

關於vi不正常退出產生的swp檔案

非正常關閉vi編輯器時會生成乙個.swp檔案 關於swp檔案 使用vi,經常可以看到swp這個檔案,那這個檔案是怎麼產生的呢,當你開啟乙個檔案,vi就會生成這麼乙個.filename swp檔案 以備不測 不測下面討論 如果你正常退出,那麼這個這個swp檔案將會自動刪除 下面說不測。2非常規退出時。...

關於vi不正常退出產生的swp檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!非正常關閉vi編輯器時會生成乙個.swp檔案 關於swp檔案 使用vi,經常可以看到swp這個檔案,那這個檔案是怎麼產生的呢,當你開啟乙個檔案,vi就會生成這麼乙個.filename swp檔案 以備不測 不測下面討論 如果你正常退出,那麼這個這個...