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

news/2024/10/25 11:30:32/

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

例子

好的,这里有一个基本的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.ppmy.cn/news/1200023.html

相关文章

ACTIVE_MQ学习

ActiveMq学习①___入门概述https://blog.csdn.net/qq_45905724/article/details/131796502 ActiveMq学习②__安装与控制台https://blog.csdn.net/qq_45905724/article/details/133893214 ActiveMq学习③___Java编码实现ActiveMQ通讯https://blog.csdn.net/qq_45905724/articl…

每个程序员都应该自己写一个的:socket包装类

每个程序员都应该有自己的网络类。 下面是我自己用的socket类,支持所有我自己常用的功能,支持windows和unix/linux。 目录 客户端 服务端 非阻塞 获取socket信息 完整代码 客户端 作为socket客户端,只需要如下几个功能: //…

SM5102 3.7V 锂电池转干电池充放管理芯片

SM5102 3.7V 锂电池转干电池充放管理芯片 简介 : SM5102 是一款锂电池充放电管理专用芯片。充电工作时, 可以为 3.7V 锂电池进行充电,电流最高可配置1A。放电工作时,采用开关频率 1MHz同步降压转换器进行放电,放电电流可以达到3…

CATIA环境编辑器用不了时创建项目快捷方式

CATIA环境编辑器用不了时创建项目快捷方式 一、参考适用情况示例二、 解决步骤(一) 先正确放置winb_64部署包(二) 添加环境文件(三) 修改加入的环境文件(四) 复制本机CATIA快捷方式后重命名(五) 修改快捷方式目标的值 一、参考适用情况示例 二、 解决步骤 (一) 先正确放置winb…

分享与SOHO朋友聊天的一些经验

昨天跟一个同是SOHO的朋友见面聊了一下,她说自己的困境是不知道如何提升工作效率,感觉一个人自律性太差了,甚至有时候客户来找都提不起精神来跟进,需要抱团,希望能一起相互鼓励一下,问我有没有什么方法&…

Mechanize

Mechanize是一个Python库,用于模拟浏览器行为,实现自动化网页操作和数据提取。它提供了一种简单而方便的方式来处理表单提交、点击链接、浏览网页和提取数据等操作。 使用Mechanize库,您可以编写脚本来自动登录网站、提交表单、爬取网页内容…

蓝桥杯每日一题2023.11.6

取位数 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由题意我们知道len中为现阶段长度&#xff0c;如果其与k相等也就是找到了正确的位数&#xff0c;否则就调用递归来进行搜索&#xff0c;每次搜索一位数。 #include <stdio.h> // 求x用10进制表示时的数位长度 int …

Vue:Vue项目中的Cesium配置备忘录

作者&#xff1a;CSDN _乐多_ 本文记录了 Vue 项目中配置 Cesium 相关过程和细节。 文章目录 一、安装Cesium二、配置 index.html 一、安装Cesium npm install Cesium在node_modules中找到Cesium&#xff0c;将其中的Cesium文件夹复制到public中。 二、配置 index.html 主要…