标签归档:jar

pm2 在 windows 下运行 jar 包

  • 安装 nodejs 环境,过程略。
  • 安装 java 环境,过程略。
  • 安装 pm2 并设置开机自启环境
npm i -g --registry=http://registry.npm.taobao.org npm tbify
tnpm i -g pm2
tnpm i -g pm2-windows-startup
pm2-startup install
  • 准备好 jar 包,例如放在 c:\app\my.jar
  • 准备一个 json 文件 c:\app\pm2.json
{
    "apps": {
        "name": "myapp",  //pm2管理列表中显示的程序名称
        "cwd": "C:/app",  //项目所在目录
        "script": "javaw",  //要执行的脚本,javaw 后台运行
        "exec_mode": "fork", //fork单例多进程模式,cluster多实例多进程模式只支持node
        "error_file": "./log/err.log",  //错误日志存放位置
        "out_file": "./log/out.log",  //全部日志存放位置
        "merge_logs": true,  //追加日志
        "log_date_format": "YYYY/MM/DD HH:mm:ss",  //日志文件输出的日期格式,可以为空
        "min_uptime": "60s",  //最小运行时间(范围内应用终止会触发异常退出而重启)
        "max_restarts": 30,  //异常退出重启的次数
        "autorestart": true,  //发生异常情况自动重启
        "restart_delay": "60",  //异常重启的延时重启时间
        "args": [
            "-jar",
            "./my.jar"
        ]
    }
}
  • 运行并设置自启
pm2 start c:\app\pm2.json
pm2 save
  • pm2 面板
pm2 dash
  • 删除项目
pm2 ls // 找出项目 ID
pm2 del <id>
pm2 save

阿里ECS部署jar包发生无法解析计算机名的问题

在ECS上利用 docker 部署 jar 包时出现如下错误:

redis.clients.jedis.HostAndPort - cant resolve localhost address

是因为spring-redis在初始化时会实例化LocalHost,但是ECS的host name并没有在设置,解决方案是在 /etc/hosts 中设置ECS的host name。

比如:ssh 登录后,界面显示 user@abcdefg ,则在 /etc/hosts 中添加 127.0.0.1 abcdefg