早上上班后,一个朋友来消息,说是使用xshell在控制台执行java -jar命令,但是退出xshell后,进程就消失了。

这个问题好解决

nohup java -jar xxx &

并且会在当前执行路径下生成一个nohup.out文件,可以用于查看该进程控制台输出的进程。
如果要停止该服务,可以使用 ps aux | grep java,然后kill xxx

接着,朋友说,是否可以在该服务停止服务的时候得到通知。

这个就是部署一个监控了。

之前积累的文件派上用场了。

首先登录该服务器,查看该机器系统和配置

  • 使用top,判断cpu为8C,mem 24GB,磁盘50GB。
  • 使用cat /etc/os-relase查看系统为CentOS7。
  • 使用ping www.baidu.com,判断dns工作正常,联网正常。

打开hao123.sddts.cn,打开事半功倍,开始

  • 安装docker
  • 安装docker-compose
  • 关闭selinux,否则容器无法运行
  • 安装uptime-kuma并配置,发送测试邮件正常

至此,该服务已经在后台正常运行,且加入了监控系统。

但是呢,还有优化空间

  • 将java程序启动改成tomcat或者改成systemctl

    [Unit]
    Description=My Java Application
    After=network.target
    
    [Service]
    User=your_username
    Group=your_group
    WorkingDirectory=/path/to/your/application
    ExecStart=/usr/bin/java -jar /path/to/your/application.jar
    SuccessExitStatus=143
    Restart=always
    RestartSec=30
    Environment=JAVA_HOME=/path/to/java_home
    Environment=JAVA_OPTS=-Xmx512m -Xms256m
    
    [Install]
    WantedBy=multi-user.target
    
  • 开机自启动uptimekuma

    cat <<'EOF'>/etc/systemd/system/uptime-kuma.service
    [Unit]
    Description=Start Docker Compose in /opt/uptime-kuma
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    WorkingDirectory=/opt/uptime-kuma
    ExecStart=/bin/docker-compose up -d
    ExecStop=/bin/docker-compose down
    
    [Install]
    WantedBy=multi-user.target
    EOF
    systemctl daemon-reload
    systemctl enable uptime-kuma
    systemctl restart uptime-kuma
    
  • 配置docker,优化日志轮转
最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏