想找一款,在 Linux 环境下,可以管理 jar 包的工具,例如 配置好 jar 的命令后,可以一个命令 启动或者停止,多个 jar 或者 单个 jar ; 有点类似,node 的管理 nvm, 例如 nvm install xxx 、nvm use xxx 、nvm list; 例如工具命令行为 xxx 启动命令 xxx start jar1,jar2,jar3 停止命令 xxx stop jar1,jar2,jar3 设置某个 jar 的启动命令。xxx set jar1: java -jar -Xms -Xmx ... 查看运行的 jar 能看到端口 命令 pid
只需要命令行就可以,不需要 GUI 页面 pass docker k8s , docker 还需要写 docker file compose ; k8s 更不要说了,太重了; 只想要单纯的管理一些 jar 工具尽可能的不吃内存
1 xscanqianmeng666 2024-01-24 16:34:39 +08:00 自己写 shell 脚本就可以 |
![]() | 2 derdct 2024-01-24 16:35:29 +08:00 写个脚本? :( |
3 godleon OP @xscanqianmeng666 奈何自己不太会写 shell ,想问问有没有类似封装好的~ |
4 jjx 2024-01-24 16:37:47 +08:00 supervisor |
![]() | 5 wxyrrcj 2024-01-24 16:39:16 +08:00 docker compose 不是很好写吗,你说的是 node 的 pm2 吧 nvm 是管理环境版本的。 |
6 superrichman 2024-01-24 16:40:20 +08:00 你都有 node 了,就用 pm2 管理 |
![]() | 7 wxyrrcj 2024-01-24 16:40:29 +08:00 pm2 还写个配置文件呢 module.exports = { apps : [{ name : "frps-server", script : "./frpc -c ./frpc.ini" }] } java 写个 compose 怎么了 |
![]() | 8 wxyrrcj 2024-01-24 16:41:08 +08:00 @superrichman 对对 给 jar 写个 pm2 的配置不就可以一键启动 了 |
9 lzrainchen 2024-01-24 16:43:47 +08:00 1.可以使用 shell 脚本管理,简单看下语法或者搜索一下也可以比较简单。2.可以使用系统的 systemd 进行管理,例如启停 nginx 。systemctl start 服务名。不管使用什么都需要学习一下,学会了以后就不怕了 |
![]() | 10 aweim 2024-01-24 16:45:59 +08:00 需要管理 jar 吗? 利用 Jenkins 直接构建,发布不就可以了吗? Jenkins 上面写个 20 行的 shell 脚本。 |
![]() | 11 aweim 2024-01-24 16:48:48 +08:00 echo "ssh 连接进行备份操作" ssh -Tq -oStrictHostKeyChecking=no user1@${server_ip} <<EOF mkdir -p $DIR/backup/${projectName} mkdir -p $DIR/${projectName} if [ -f "$DIR/${projectName}/${projectName}.jar" ];then mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar fi EOF echo "拷贝 jar 包到目标服务器的 tmp 目录" scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar use1@${server_ip}:/xxx/xxx/${projectName}.jar echo "ssh 远程连接进行发布操作" ssh -q -oStrictHostKeyChecking=no user1@${server_ip} <<EOF mv /xxx/xxx/${projectName}.jar $DIR/${projectName}/${projectName}.jar echo "copy jar success" echo "开始部署远程服务器" echo "先停止服务${projectName}" sh $DIR/${projectName}/stop.sh echo "启动服务${projectName}" sh $DIR/${projectName}/start.sh EOF done echo "success" |
![]() | 12 lstz 2024-01-24 16:49:59 +08:00 via Android linux 写脚本随便怎么弄都可以,但是 windows 就不行了,光是命令行参数长度就够喝一壶了 |
![]() | 13 cctv6 2024-01-24 16:57:12 +08:00 自带的 systemd? 复制一份 service 配置文件,配置好目录和启动命令。 systemctl start/stop/status/edit xxx 缺点是看不到端口,不过你可以把端口写在备注里,使用 status 的时候一样也能看到。 |
![]() | 14 wxyrrcj 2024-01-24 17:00:11 +08:00 @lstz windows 可以用这个 https://www.wxy97.com/archives/39 |
![]() | 16 mylovesaber 2024-01-24 19:24:18 +08:00 ![]() 巧了,这东西用 shell 来实现我正在写,快写完了,但估计是没法公开,给组里用的,然后我之前尝试过纯 java 来写,也是可以实现的,你不会 shell 会 java 也可以啊,只需要把 alias jsc='java -jar' 添加到环境变量中,然后就可以用命令的方式控制 jar 包管理器了比如:jsc -Dstart 这种造型的都是可以的 |
17 jifengg 2024-01-25 08:58:32 +08:00 工作上用过 supervisor 和 pm2 ,都能实现需求。而且都不仅仅是 jar ,任何进程都能管理 |
![]() | 18 fengche361 2024-01-25 10:16:26 +08:00 jenv |