除了使用 nohup,生产环境如何启动 Java 应用?

2020-12-01 10:10:36 +08:00
 zealinux

现在都是使用nohup java -jar x.jar > /tmp/x.log 2>&1 &

但其实没考虑到一个问题,如果云上虚拟机器挂了,或重启了。(这个发生过) 就需要自己手动去启动。

如果事故发生再夜里,手动启动就相当痛苦。

有没有合适的方法?

ubuntu 18.04 Java 1.8

7049 次点击
所在节点    程序员
58 条回复
akira
2020-12-01 14:21:12 +08:00
别抢运维的活。。
3t
2020-12-01 14:34:19 +08:00
最近上手了 pm2,改两行配置代码就行了,自带自动重启
Illusionary
2020-12-01 14:47:18 +08:00
2021 年了还不上 docker ?
namelosw
2020-12-01 16:04:51 +08:00
怕吗? 怕就 Kubernetes.
chenhbang
2020-12-01 17:26:31 +08:00
systemd . supervisor . docker
wongy
2020-12-01 17:29:19 +08:00
https://github.com/mojohaus/appassembler
Java Service Wrapper 是我目前使用的打包执行工具
Fanx
2020-12-01 18:32:29 +08:00
写 systemd
zengming00
2020-12-01 20:42:08 +08:00
@Selenium39 以前 pm2 是 nodejs 专用,现在 pm2 已经是通用的了
dooonabe
2020-12-01 21:36:48 +08:00
setsid
sampeng
2020-12-01 21:43:47 +08:00
生产环境表示干了十年也没用 nohub 跑业务。临时几分钟脚本偶尔用
yishenggudou
2020-12-01 22:10:22 +08:00
supervisor 正解
IgniteWhite
2020-12-02 06:15:11 +08:00
介于 nohup 和 service 之间还可以写个开机启动的 tmux 脚本
FlexGap
2020-12-02 09:56:27 +08:00
实在嫌烦就上 PM2
goodboy95
2020-12-02 10:02:54 +08:00
以前用 supervisor,后来公司开始大力推 docker (不过让我们连 nginx 都搭在 docker 上是我万万没有想到的,我过了一年都没想出这么干有什么好处)
julyclyde
2020-12-02 11:26:51 +08:00
@goodboy95 确实没什么好处。就是一种病
julyclyde
2020-12-02 11:27:06 +08:00
@IgniteWhite 这个显然不靠谱
IgniteWhite
2020-12-03 03:42:09 +08:00
@julyclyde 资源占用来说 tmux session 当然比系统 service 稍大,但是靠谱不靠谱得看脚本怎么写。不过脚本如果做成了 service 用 tmux 就没有意义了
ql562482472
2023-07-10 20:07:38 +08:00
@goodboy95 2 年半了 你明白有什么好处了吗

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

https://www.v2ex.com/t/730836

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

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

© 2021 V2EX