V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
godleon
V2EX  ›  程序员

Linux 环境下,有没有超轻量管理 jar 包的工具?

  •  
  •   godleon · 2024-01-24 16:30:56 +08:00 · 1744 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

    想找一款,在 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
    

    PS

    只需要命令行就可以,不需要 GUI 页面
    
    pass docker k8s ,
    docker 还需要写 docker file compose ;
    k8s 更不要说了,太重了;
    只想要单纯的管理一些 jar
    
    工具尽可能的不吃内存
    
    18 条回复    2024-01-25 10:16:26 +08:00
    xscanqianmeng666
        1
    xscanqianmeng666  
       2024-01-24 16:34:39 +08:00
    自己写 shell 脚本就可以
    derdct
        2
    derdct  
       2024-01-24 16:35:29 +08:00
    写个脚本? :(
    godleon
        3
    godleon  
    OP
       2024-01-24 16:36:30 +08:00
    @xscanqianmeng666 奈何自己不太会写 shell ,想问问有没有类似封装好的~
    jjx
        4
    jjx  
       2024-01-24 16:37:47 +08:00
    supervisor
    wxyrrcj
        5
    wxyrrcj  
       2024-01-24 16:39:16 +08:00
    docker compose 不是很好写吗😪,你说的是 node 的 pm2 吧 nvm 是管理环境版本的。
    superrichman
        6
    superrichman  
       2024-01-24 16:40:20 +08:00
    你都有 node 了,就用 pm2 管理
    wxyrrcj
        7
    wxyrrcj  
       2024-01-24 16:40:29 +08:00
    pm2 还写个配置文件呢

    module.exports = {
    apps : [{
    name : "frps-server",
    script : "./frpc -c ./frpc.ini"
    }]
    }

    java 写个 compose 怎么了
    wxyrrcj
        8
    wxyrrcj  
       2024-01-24 16:41:08 +08:00
    @superrichman 对对 给 jar 写个 pm2 的配置不就可以一键启动 了
    lzrainchen
        9
    lzrainchen  
       2024-01-24 16:43:47 +08:00
    1.可以使用 shell 脚本管理,简单看下语法或者搜索一下也可以比较简单。2.可以使用系统的 systemd 进行管理,例如启停 nginx 。systemctl start 服务名。不管使用什么都需要学习一下,学会了以后就不怕了
    aweim
        10
    aweim  
       2024-01-24 16:45:59 +08:00
    需要管理 jar 吗? 利用 Jenkins 直接构建,发布不就可以了吗? Jenkins 上面写个 20 行的 shell 脚本。
    aweim
        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"
    lstz
        12
    lstz  
       2024-01-24 16:49:59 +08:00 via Android
    linux 写脚本随便怎么弄都可以,但是 windows 就不行了,光是命令行参数长度就够喝一壶了
    cdlnls
        13
    cdlnls  
       2024-01-24 16:57:12 +08:00
    自带的 systemd? 复制一份 service 配置文件,配置好目录和启动命令。
    systemctl start/stop/status/edit xxx

    缺点是看不到端口,不过你可以把端口写在备注里,使用 status 的时候一样也能看到。
    wxyrrcj
        14
    wxyrrcj  
       2024-01-24 17:00:11 +08:00
    @lstz windows 可以用这个 https://www.wxy97.com/archives/39
    lstz
        15
    lstz  
       2024-01-24 17:19:06 +08:00 via Android
    @wxyrrcj 谢谢分享
    mylovesaber
        16
    mylovesaber  
       2024-01-24 19:24:18 +08:00   ❤️ 1
    巧了,这东西用 shell 来实现我正在写,快写完了,但估计是没法公开,给组里用的,然后我之前尝试过纯 java 来写,也是可以实现的,你不会 shell 会 java 也可以啊,只需要把
    alias jsc='java -jar'
    添加到环境变量中,然后就可以用命令的方式控制 jar 包管理器了比如:jsc -Dstart 这种造型的都是可以的
    jifengg
        17
    jifengg  
       2024-01-25 08:58:32 +08:00
    工作上用过 supervisor 和 pm2 ,都能实现需求。而且都不仅仅是 jar ,任何进程都能管理
    fengche361
        18
    fengche361  
       2024-01-25 10:16:26 +08:00
    jenv
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1756 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:05 · PVG 13:05 · LAX 21:05 · JFK 00:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.