最新nohup 挂载多个jar包项目会把前面滴项目kill掉,java面试题大全带答案

最后

这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档

祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!

感谢大家的支持!!

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

不担心咋们可以虚拟出一个磁盘分区,自动挂载到上面。

重点来了:


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

写在最后

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!

由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

t/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

在使用 `nohup java -jar` 部署 JAR 时,应用可能会因为多种原因出现崩溃或意外退出的情况。以下是几种常见的解决方法: 1. **日志文件过大问题** 默认情况下,`nohup` 会将输出写入 `nohup.out` 文件中,如果未进行管理,该文件可能无限增长并导致磁盘空间耗尽,从而引发程序异常退出。为了避免这一问题,可以将标准输出和错误输出重定向到 `/dev/null`,即不记录任何输出: ```bash nohup java -jar xxxx.jar > /dev/null 2>&1 & ``` 这样可以有效避免因日志文件过大而导致的系统资源耗尽问题[^1]。 2. **内存配置不当** 如果 JVM 的堆内存设置不合理(例如 `-Xms` 和 `-Xmx` 设置过小),可能导致应用在处理大量请求或数据时发生 `OutOfMemoryError`。因此,建议根据实际需求调整 JVM 内存参数,并确保有足够的物理内存可用: ```bash nohup java -jar -Xms512m -Xmx1024m /xxx/yyy/aaa.jar & ``` 此外,还可以通过添加 `-XX:+HeapDumpOnOutOfMemoryError` 参数来生成堆转储文件,以便后续分析内存泄漏的原因[^2]。 3. **临时目录配置** 某些 Java 应用(尤其是基于 Tomcat 的 Spring Boot 应用)会在运行时使用默认的系统临时目录(如 `/tmp`)。如果该目录权限受限或磁盘空间不足,可能导致应用异常退出。为避免此类问题,可以通过 `-Djava.io.tmpdir` 显式指定一个具有足够空间和适当权限的临时目录: ```bash nohup java -Djava.io.tmpdir=/xxx/.../tmp -jar -Xms512m -Xmx512m /xxx/.../xxx.jar --server.tomcat.basedir=/xxx/.../tmp & ``` 同时,`--server.tomcat.basedir` 参数用于指定 Tomcat 的工作目录,防止其使用默认路径导致的问题[^2]。 4. **自动重启机制** 为了提高服务的可用性,可以在脚本中实现自动重启逻辑。例如,编写一个 Shell 脚本来定期检查应用是否仍在运行,并在检测到进程终止后重新启动它: ```bash #!/bin/bash while true; do if ! ps -p <PID> > /dev/null; then echo "Application is not running, restarting..." nohup java -jar -Xms512m -Xmx1024m /path/to/app.jar > /dev/null 2>&1 & fi sleep 60 done ``` 其中 `<PID>` 是应用的进程 ID。此脚本每分钟检查一次应用状态,若发现进程不存在,则自动重启应用[^4]。 5. **健康检查与监控** 使用 `curl` 或其他 HTTP 客户端工具对应用的健康检查接口进行轮询,确保应用始终处于可访问状态。如果检测失败,可以触发重启操作: ```bash #!/bin/bash if ! curl -s -f http://localhost:8080/actuator/health > /dev/null; then echo "Application health check failed, restarting..." pkill -f "java -jar" nohup java -jar -Xms512m -Xmx1024m /path/to/app.jar > /dev/null 2>&1 & fi ``` 上述脚本通过调用 `/actuator/health` 接口判断应用是否正常,若失败则杀死当前 Java 进程并重新启动[^5]。 6. **查看日志与调试信息** 若应用频繁崩溃但无明显外部表现,应优先检查 `nohup.out` 中的日志内容,寻找异常堆栈信息。此外,还可以结合系统日志(如 `/var/log/messages` 或 `dmesg` 输出)查找是否有 OOM Killer 杀死进程的记录: ```bash dmesg | grep -i kill ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值