Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本 |
您所在的位置:网站首页 › 端口掉了 › Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本 |
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文件是开机的时候会执行
文件不设置可执行权限,第一步配置的启动命令不会执行; 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 -ecrontab -l 命令
Linux 查看定时器Crontab日志 查看命令如下 tail -f /var/log/cron 最后验证应用是否自启 首先:可以手动关闭应用,10分钟后看应用是否还在启用中(首次验证可以把定时任务改成每分钟执行,来快速验证一下) 最后:重启服务器,查看应用是否在运行 reboot 完毕~ |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |