当前位置: 首页 > news >正文

开机自启动脚本配置

#!/bin/bash# 定义要检查的IP地址
IP_ADDRESSES=("127.0.0.1")# 检查是否存在任意一个IP地址
check_ips() {HOST_IPS=$(hostname -I)for IP in "${IP_ADDRESSES[@]}"; doif [[ $HOST_IPS =~ $IP ]]; thenreturn 0fidonereturn 1
}# 检查IP地址并在必要时重新启动网络的主循环
while true; docheck_ipsif [ $? -ne 0 ]; thenecho "没有检测到任意一个指定的IP地址。重新启动网络..."/etc/init.d/networking restartelseecho "检测到至少一个指定的IP地址。退出循环。"breakfisleep 30
done

在这个脚本中,当检测到任意一个指定的IP地址时,输出“检测到至少一个指定的IP地址。退出循环。”并退出循环。

添加到开机自启动
按照以下步骤将脚本添加到开机自启动:

保存脚本:
将脚本保存到一个目录,例如/usr/local/bin/。

sudo nano /usr/local/bin/start-service.sh

将上述脚本内容粘贴进去,然后保存文件。

赋予脚本可执行权限:
确保脚本具有可执行权限:

sudo chmod +x /usr/local/bin/start-service.sh

创建init脚本:
在/etc/init.d/目录下创建一个init脚本:

sudo nano /etc/init.d/start-service

添加以下内容到init脚本:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          start-service
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: 启动start-service脚本
### END INIT INFOcase "$1" instart)echo "启动start-service"/usr/local/bin/start-service.sh &;;stop)echo "停止start-service"pkill -f /usr/local/bin/start-service.sh;;restart)echo "重启start-service"pkill -f /usr/local/bin/start-service.sh/usr/local/bin/start-service.sh &;;*)echo "用法: /etc/init.d/start-service {start|stop|restart}"exit 1;;
esacexit 0

保存并关闭文件。

赋予init脚本可执行权限:
确保init脚本具有可执行权限:

sudo chmod +x /etc/init.d/start-service

注册init脚本:
使用update-rc.d命令将脚本注册为开机自启动:

sudo update-rc.d start-service defaults

验证:
可以手动启动脚本来验证其是否正常工作:

sudo /etc/init.d/start-service start

并检查其是否已经成功启动。你可以使用以下命令停止脚本:

sudo /etc/init.d/start-service stop

通过以上步骤,start-service.sh脚本将在系统启动时自动运行,并在检测到任意一个指定的IP地址时退出循环。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 期末复习 习题集
  • VS2022+Qt雕刻机单片机马达串口上位机控制系统
  • C++三大特性之继承,详细介绍
  • Yolov9比其他yolo版本的改进
  • 设计与实现完整的余额充值系统
  • MySQL之多表查询—列子查询
  • python后端结合uniapp与uview组件tabs,实现自定义导航按钮与小标签颜色控制
  • 谷歌google play上架
  • 淘宝扭蛋机小程序,扭蛋市场创新模式
  • 【recast-navigation-js】使用three.js辅助绘制Agent寻路路径
  • php质量工具系列之PHPCPD
  • 论文中eps格式图片制作
  • 如何利用langchian调用百度大模型API
  • c++进阶——继承
  • 数据库管理工具——DBeaver简介
  • __proto__ 和 prototype的关系
  • Android单元测试 - 几个重要问题
  • css布局,左右固定中间自适应实现
  • Git学习与使用心得(1)—— 初始化
  • JavaScript服务器推送技术之 WebSocket
  • leetcode讲解--894. All Possible Full Binary Trees
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python学习之路13-记分
  • Redux系列x:源码分析
  • SAP云平台里Global Account和Sub Account的关系
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • uni-app项目数字滚动
  • Vue ES6 Jade Scss Webpack Gulp
  • 百度小程序遇到的问题
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 今年的LC3大会没了?
  • 近期前端发展计划
  • 聊聊flink的BlobWriter
  • 判断客户端类型,Android,iOS,PC
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 浅谈Golang中select的用法
  • 听说你叫Java(二)–Servlet请求
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 写给高年级小学生看的《Bash 指南》
  • 原生js练习题---第五课
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​如何在iOS手机上查看应用日志
  • #nginx配置案例
  • $(selector).each()和$.each()的区别
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)svelte 教程:hello world
  • (19)夹钳(用于送货)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Matlab)使用竞争神经网络实现数据聚类
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (void) (_x == _y)的作用
  • (笔试题)合法字符串
  • (代码示例)使用setTimeout来延迟加载JS脚本文件