服务器上的 java web 应用,通过 java -jar xx.jar 运行。
怎么方便的管理这些进程?类似 pm2 管理 nodejs 的应用一样?
试过 supervisor,感觉不舒服,还有么有类似的?
1
GuryYu 2018-06-10 19:37:13 +08:00 via iPhone
可以考虑用 docker,一个进程一个容器
|
2
rockyou12 2018-06-10 19:41:19 +08:00
打包成 docker image 是最好,最方便的。
|
3
wangxiaoaer OP docker 不考虑。服务器就这一个应用,不需要容器化。
|
4
hcymk2 2018-06-10 20:07:41 +08:00
pm2 可以管理脚本。
|
5
Cbdy 2018-06-10 20:09:14 +08:00 via Android
po 的这个问题我也思考过,路径和你一样,也尝试过用 pm2、Supervisor、Docker。问题都比较明显。pm2 虽然可以,但是它始终还是为 Node.js 设计的。Supervisor 用需要 Python,直接不考虑。Docker 总的来说是比较好的方案,可以考虑采用外挂 volume 的“轻量”容器化方案,基本能达到和 pm2 类似的效果
如果确实不考虑 Docker,可以试试我写的一个启停 Shell 脚本,应用状态可以用类似 JMX 的方案 脚本: https://github.com/cbdyzj/boot/blob/master/bin/bootstrap |
7
Cbdy 2018-06-10 20:20:57 +08:00 via Android
@hcymk2 对的,如果是稳定的服务,注册成 systemd 或者 SysV 服务当然最好了,如果需要经常发布,就显得不灵活了
|
8
wangxiaoaer OP @Cbdy 多谢,我试试这个脚本吧。
|
9
SoloCompany 2018-06-10 22:51:01 +08:00 via iPhone
|
10
wdlth 2018-06-10 23:10:24 +08:00
可以做成服务,用系统自己的服务管理。
|
11
mritd 2018-06-11 10:16:24 +08:00 via iPhone
说了这么多,你们就没人研究下现代系统自身的 systemd 么?
|
12
wangxiaoaer OP |
13
mritd 2018-06-11 10:44:44 +08:00
@wangxiaoaer #12 这玩意复杂?单独切割守护类的服务写一个配置文件就完事,不超过 20 行;上面 pm2、Supervisor、docker 那个玩意不比这个重
|
14
wangxiaoaer OP @mritd #13
其他没用过,我说下 PM2 我是怎么用的: npm install pm2 -g cd ...../app pm2 start server.js --name n 还有比这个还简单的?这也不算重吧。 |
15
mritd 2018-06-11 10:59:15 +08:00
@wangxiaoaer #14
centos7+、debian9+、ubuntu16+ 无需安装任何环境(nodejs/python),系统级托管服务 cat > /lib/systemd/system/xxxx.service <<EOF [Unit] Description=xxxxxx After=network.target After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/path/to/java -jar xxxx.jar Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload && systemctl start xxxx |
16
wangxiaoaer OP @mritd #15 还不错 :) 我参考下。
|
17
mritd 2018-06-11 11:28:50 +08:00 1
@wangxiaoaer #16
看你需求就是需要启动停止啥的 systemctl start xxxx systemctl stop xxxx systemctl restart xxxx systemctl status xxxx 如果你的日志打到了 STDOUT,那么使用 journalctl -fu xxxx 观察日志(-f 持续监测) 不过 java 一般都是 logback 啥的送到具体文件了吧 安全性需求强你可以看下 systemd service 怎么使用特定用户运行 |
18
wangxiaoaer OP @mritd #17 好的,多谢。
|