大家的 Java 服务的进程管理是如何做到的

2023-09-21 09:36:18 +08:00
 sankooc

本人原来是做 nodejs 的今年开始帮忙朋友的 java 项目做做运维 由于我自己的技术栈限制当前的 java 项目是靠 pm2 管理的 随着部署服务的数量增多现在有监控各个服务器 pm2 状态和报警的需求 我看了下 pm2 的 monitor 功能是收费且不能 selfhost 的 大家有没有 pm2 monitor 的竞品推荐 或者说 java 的进程管理工具主要的功能需求是 服务的自动重启 报警等等

4417 次点击
所在节点    Java
37 条回复
julyclyde
2023-09-26 16:44:52 +08:00
@darkengine 但是删了 nohup.out 之后并不会腾出来空间
我那么问就是设陷阱等你掉进去呢
julyclyde
2023-09-26 16:46:06 +08:00
@salmon5 supervisorD 如果是非特权身份启动的,那它自己都没资格扩大 MinFDs
如果有特权身份去启动 supervisorD ,那我干嘛不直接特权身份调 systemd 去管理服务呢?何必多穿一层裤子再放屁?
darkengine
2023-09-26 16:53:39 +08:00
@julyclyde 嗯,特意查了脚本,没有存到 nohup.out ,直接丢 /dev/null 了。定期把 log 库产生的文件转移到第二块硬盘,这块硬盘里的日志文件保留一周。
julyclyde
2023-09-26 16:55:27 +08:00
@darkengine 但是放 null 就很难查询日志了呀
darkengine
2023-09-26 17:03:01 +08:00
@julyclyde 日志用 logstash 输出到 logs 目录了,转存的是这个目录下的日志文件
julyclyde
2023-09-26 17:03:59 +08:00
@darkengine 不错不错
salmon5
2023-09-26 17:17:52 +08:00
@julyclyde 你想用 systemd 是你的事情,每种软件都有自己的使用场景。争强好胜带脏话,你可以闭嘴。
julyclyde
2023-09-26 17:18:41 +08:00
@salmon5 我没必要闭嘴。你水平不行那是你的问题,应该多学习
salmon5
2023-09-26 17:20:24 +08:00
@julyclyde 用 systemd 水平就好了?这是入门级的
julyclyde
2023-09-26 17:21:50 +08:00
@salmon5 考虑到绝大多数人都到不了这个入门级,确实是选了 systemd 就等于水平好
salmon5
2023-09-26 17:36:44 +08:00
@julyclyde 看你多年网上老人了,应该也工作很多年了,没想到这么张狂
salmon5
2023-09-26 17:37:20 +08:00
上来就出言不逊
julyclyde
2023-09-26 17:39:03 +08:00
@salmon5 为什么你能把技术上的正确总结为态度问题呢
是不是说明你看重态度的程度超过看重技术?
salmon5
2023-09-26 17:43:30 +08:00
@julyclyde 我前面说了,k8s 和 systemd 都是不错的选择,supervisor 比较轻量;
每个人的偏好不同,OP 这个需求看上去轻量,我个人觉得 supervisor 更合适
julyclyde
2023-09-26 17:49:03 +08:00
@salmon5 仅仅是轻啊
supervisorD 解决不了“它自己的存活”这个根本的问题。你不能因为这种事很少发生就不去考虑吧
java 进程也很少崩溃,就需要考虑,为什么 supervisorD 的存活就不需要考虑呢?

以及,日志收集的问题。supervisorD 收集下属服务的日志,是按长度切断的,这个功能确实存在,但需要配置才能用。否则就和 nohup 一样持续往后写,容易占满存储空间。这不仅仅是消耗人力写一句配置语句的问题,而是很有可能忘记写导致事故的问题

选用 systemd 就没这俩问题。systemd 自己是 init ,一号进程天然神圣;用 journald 收集日志,不需要自己操心 rotate ,而且这个功能是免配置的
james122333
2023-09-26 20:42:29 +08:00
没有对与不对 只有会不会用
给我选当然就 shell 写个 daemon
当然单纯 nohup 是不够的 shell 本身就有 job control 功能 给 pid 1 可以作为 init 程序 至于讯息怎么处理看你自己 有人提到什么 log 档太大 其实用 ulimit 限制大小可以搞定
给我选我是不选 systemd 毕竞老是在出漏洞 外加配置档又是个 dsl 而且我需要可以控制其行为的东西 当然公司用什么就用什么
james122333
2023-09-26 21:29:29 +08:00
我很像讲太多了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/975751

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX