nohup 挂載多個jar包項目會把前面滴項目kill掉
nohup我就不解釋了個人了解就是把程式挂載到伺服器,并且伺服器不關閉都會一直運作這樣子。最近遇到一個很頭疼滴問題,就是我用nohup挂載jar項目就會把前面第一個項目kill自動退出掉,網上找了很久都沒有找到這個問題,百度不到。
問題來了:
我這個jar程式是通過 nohup java -jar fwq.jar >fwq.log 2>&1 & 方式挂載到伺服器正常使用滴。然後我還想挂載一個8086滴項目到伺服器上面。
然後就出現了這個問題:
---> kill了你前面一個jar程式,然後各種百度對不對,都沒有找到答案,俗話說聞道有先後,術業有專攻嘛,畢竟你叫一個搞背景滴去搞運維實在頭疼。然後我試了很多次都沒找到答案,包括nohup指令詳細介紹。
具體可以參考下面:
total1: 表示實體記憶體總量。
used1: 表示總計配置設定給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存并未實際使用。
free1: 未被配置設定的記憶體。
shared1: 共享記憶體,一般系統不會用到,這裡也不讨論。
buffers1: 系統配置設定但未被使用的buffers 數量。
cached1: 系統配置設定但未被使用的cache 數量。buffer 與cache 的差別見後面。
used2: 實際使用的buffers 與cache 總量,也是實際使用的記憶體總量。
free2: 未被使用的buffers 與cache 和未被配置設定的記憶體之和,這就是系統目前實際可用記憶體。
Linux free -m 詳細說明_風起雲湧2021的部落格-CSDN部落格 //這個是free 參數詳解
問題點:是因為你伺服器記憶體太小,可用空間太小了,這樣會導緻前面滴jar程式kill掉。買服務又很貴,1核2G都要好幾百。
不擔心咋們可以虛拟出一個磁盤分區,自動挂載到上面。
重點來了:
1,檢視你伺服器記憶體:
free -m
2,建立一個分區:
dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
選擇一個較大的分區,建立分區檔案(不同伺服器參數不一樣這個不糾結)指令表示在opt分區建立名為swap,大小為1G的虛拟記憶體檔案
3,将swap檔案設定為swap分區檔案
chmod 600 /opt/swap --賦予權限
mkswap /opt/swap
4,激活swap,啟用分區交換檔案
swapon /opt/swap
5,檢視分區結果(剛開始是0看到這樣說明就成功了)
如果要解除安裝虛拟分區空間大家可以參靠這個大佬滴文章
(https://blog.csdn.net/herobacking/article/details/80371242)
咋們現在再來挂載:
然後在看看記憶體:(我們發現已經用了一些虛拟記憶體了)
ok,解決了這個問題:問題主要是你伺服器記憶體太小,導緻挂載失敗。(這裡省略一萬字哈哈.......,有一種征服滴感覺哈哈哈,我懷疑你在開車但是我又找不到證據 /調皮,/調皮)