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

由一个自动化脚本运维展开的思考

今天分享一个思路,如何通过脚本集中管理程序的启停。减少人工的介入。

例子

好的,这里有一个基本的shell脚本示例,你可以根据你的具体需求进行修改。

启动脚本(start.sh):

#!/bin/bash
./test_server_1 &
PUB_PID=$!
./test_server_2 &
REP_PID=$!
./test_client_2 &
REQ_PID=$!
./test_client_1 &
SUB_PID=$!echo $PUB_PID > pub.pid
echo $REP_PID > rep.pid
echo $REQ_PID > req.pid
echo $SUB_PID > sub.pid

这个脚本会启动四个程序,并将它们的进程ID保存到对应的.pid文件中。

停止脚本(stop.sh):

#!/bin/bash
kill $(cat pub.pid)
kill $(cat rep.pid)
kill $(cat req.pid)
kill $(cat sub.pid)rm pub.pid
rm rep.pid
rm req.pid
rm sub.pid

这个脚本会读取.pid文件中的进程ID,然后发送SIGTERM信号来停止这些进程。最后,它会删除.pid文件。

在使用这些脚本之前,你需要确保它们有执行权限。你可以使用chmod +x start.sh stop.sh命令来添加执行权限。然后,你可以使用./start.sh来启动程序,使用./stop.sh来停止程序。

总结

我们在Linux上执行的内容,其根本都是对文件的操作,也就是说我们的程序的信息,也是存储在Linux下的某个文件下的,我们这里使用了每次启动时系统分配的进程ID ,通过id 来告诉系统期望的操作。

因此可以扩展,如果我们需要,在开始运行前先编写好相关的脚本,真的可以为后期的调试,运维剩下不少力气。

特别是当你需要面对很久之前的代码项目时。

  • 读完善的readme,要比看代码硬啃功能更好。
  • 借用完善的cmake,要比自己编译再去解决库依赖好。
  • Makefile写好之后,make 系列指令,要比自己一个模块一个模块的cp 程序更好。

分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

http://www.lryc.cn/news/219942.html

相关文章:

  • STM32F103C8T6第二天:按键点灯轮询法和中断法、RCC、电动车报警器(振动传感器、继电器、喇叭、433M无线接收发射模块)
  • 路由器基础(九):防火墙基础
  • 免费(daoban)gpt,同时去除广告
  • 如何使用Plex在Windows系统上搭建一个全能私人媒体影音站点
  • vue如何实现视频全屏切换
  • Shopee买家通系统一款全自动操作虾皮买家号的软件
  • 希亦内衣洗衣机和小米哪个品牌好?内衣洗衣机横评对比
  • 下载安装各种版本的Vscode以及解决VScode官网下载慢的问题
  • 双十一电视盒子哪个牌子好?测评工作室整理口碑电视盒子排名
  • 11.1总结
  • Proteus仿真--1602LCD显示电话拨号键盘按键实验(仿真文件+程序)
  • 如何防范AI诈骗
  • ICCV2023 Tracking paper汇总(一)(多目标跟随、单目标跟随等)
  • 【PG】PostgreSQL查看与修改参数
  • openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略
  • 如何更好地理解甜葡萄酒和干葡萄酒的区别?
  • 基于单片机的车载太阳能板自动跟踪系统研究
  • 前端传字符串的开始时间和 结束时间,数据库时间字段是 timestamp,Java 代码如何写
  • Mac电脑录屏软件 Screen Recorder by Omi 中文最新
  • Android 接入ttf字体文件
  • Java中各种数据格式-json/latex/obo/rdf/ turtle/owl/xml介绍对比示例加使用介绍
  • 计网note
  • Mac版eclipse如何安装,运行bpmn文件
  • 3D高斯泼溅(Splatting)简明教程
  • 为什么要停止在 SpringBoot 中使用字段注,改用构造器注入
  • 数据可视化:地图
  • java 数据结构 ArrayList源码底层 LinkedList 底层源码 迭代器底层
  • 如何在Python编程中应用Linux环境下的框架,以实现高效算法?
  • 多机位直播案例
  • 前沿重器[37] | 大模型对任务型对话的作用研究