Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

您所在的位置:网站首页 端口掉了 Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

2024-05-24 05:20| 来源: 网络整理| 查看: 265

linux开机自启 背景

目前要部署一个spring boot框架的jar包,实现开机启动项目或者应用挂掉了 执行启动脚本 在root目录下有一个启动项目的脚本: app_start.sh app_start.sh 里面内容是:

nohup java -jar xxx.jar>/dev/null 2>&1 &

linux执行 sh /root/app_start.sh 可以后台启动xxx.jar应用 需要对app_start脚本和 xxx.jar包 需要设置可执行权限(重要):

chmod +x /root/app_start.sh chmod +x /root/ xxx.jar 一、开机自定义执行命令(脚本)(/etc/rc.d/rc.local) 简介 /etc/rc.d/rc.local 用于添加开机启动命令 /etc/rc.local是/etc/rc.d/rc.local的软连接 软连接相当于windows的快捷键

下图是linux服务器的启动流程,由此可知/etc/rc.d/rc.local文件是开机的时候会执行 image

配置开机执行 第一步:/etc/rc.local文件添加启动命令 vi /etc/rc.local

image

第二步:设置/etc/rc.d/rc.local 文件的可执行权限(重要)

文件不设置可执行权限,第一步配置的启动命令不会执行;

chmod +x /etc/rc.d/rc.local 第三步:重启服务器;查看应用是否启动成功 reboot 二、定时任务crontab 简介

Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

1、cron是服务名称; 2、crond是后台进程; 3、crontab是计划任务表;

由上面的简介就知道crontab,是linux系统开机默认会启动的定时任务,并且每分锺会定期检查是否有要执行的工作; 这样我们就能定时的执行一个脚本,每10分钟、每半个小时的执行一次脚本;

开机自启&判断应用没启动,执行启动脚本

我们可以每10分钟、每半个小时 执行一次启动脚本的命令(命令如下),来保证应用始终是启动的,当然第一次 执行命令应用启动完成了,后面在执行启动命令的时候 报端口占用的异常,但是不影响已经启动的应用,所以也能满足了开机自启的需求。

sh /root/app_start.sh

基于此我们可以写一个判断脚本,判断 自启应用的端口是否被占用了,端口没被占用才执行启动脚本,避免无效的执行 启动应用脚本命令(sh /root/app_start.sh )

假如启动应用脚本命令(sh /root/app_start.sh )的应用端口是 9999,那么可以有一个/root/task_start.sh的脚本 /root/task_start.sh 脚本命令如下:

#!/bin/sh tomcat=`netstat -an | grep ":9999" | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l` if [ $tomcat -eq 0 ];then #如果端口没有占用的话要怎么怎么样 sh /root/app_start.sh fi

这样就根据业务需求 每10分钟、半个小时执行一次命令 sh /root/task_start.sh 来判断应用的端口如果没有被占用,端口不存在说明应用没有运行,执行启动项目的命令(sh /root/app_start.sh )

crontab 添加周期性执行脚本 crontab命令 crontab [-u username]    //省略用户表表示操作当前用户的crontab -e (编辑工作表) -l (列出工作表里的命令) crontab时间格式实例 每分钟执行一次 * * * * * sh /root/task_start.sh 每10分钟执行一次 */10 * * * * sh /root/task_start.sh 每个小时执行一次 0 */1 * * * sh /root/task_start.sh 编辑周期性执行脚本

新增 每10分钟执行启动脚本

crontab -e

image

验证定时任务 是否新增完成

crontab -l 命令 image

Linux 查看定时器Crontab日志 查看命令如下

tail -f /var/log/cron 最后验证应用是否自启 首先:可以手动关闭应用,10分钟后看应用是否还在启用中(首次验证可以把定时任务改成每分钟执行,来快速验证一下) 最后:重启服务器,查看应用是否在运行 reboot 完毕~


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3