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,解决了这个问题:问题主要是你服务器内存太小,导致挂载失败。(这里省略一万字哈哈.......,有一种征服滴感觉哈哈哈,我怀疑你在开车但是我又找不到证据 /调皮,/调皮)