配置文件密文存储敏感信息服务启动流程设计

news/2025/2/13 17:19:54/文章来源:https://www.cnblogs.com/xpp-123/p/18714032

start() {# ()创建子进程(flock -x 200  # 200 文件描述符,进程级别的。ctl_n=$(ps -fu ${USER} | grep 'xxx start' | grep -v 'grep' | grep -v "$$" | wc -l)  # grep -v "$$" 过滤掉当前进程if [ ${ctl_n} -gt 1 ]; thenecho -e "Exist kafka_ctl is running, please try later"return 1fireturn 0) 200>${lock_file}rc=$?if [ $rc -ne 0 ]; then  # 子进程被异常中断rc=137,这种场景视业务情况继续执行业务逻辑或者退出脚本exit 0fi...    
# start service}

分析:

通过flock锁定启动脚本,确保运行时有且仅有一个执行service start流程,通过检查和恢复备份确保下一次service start流程中配置信息的正确性,备份流程增加启动流程的容错性。

异常场景分析:

1. 调用脚本的start方法启动服务时如果收到了crtl + z信号

Ctrl + Z 时,运行中的脚本会接收到 SIGTSTP 信号,导致脚本被暂停并放入后台。此时,脚本并不会终止,而是处于暂停状态。要恢复脚本的运行,可以通过以下方法将其从后台重新调入前台或在后台继续运行。

使用 jobs 命令查看当前 Shell 中的所有后台任务。

jobs

[1]+  Stopped                 kafka_ctl start

使用 fg 命令将指定的任务恢复到前台运行

fg %1

 

2. 调用脚本的start方法启动服务时如果收到了crtl + c信号(中断信号)

当你按下 Ctrl + C 时,系统会向当前运行的前台进程发送 SIGINT(中断信号)。这是操作系统提供的一种机制,允许用户手动中断正在运行的程序或脚本。

 

 

 

...    

    

}

%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22267%22%20y%3D%2298%22%20width%3D%22175%22%20height%3D%2298%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%E6%93%8D%E4%BD%9C%E6%96%87%E4%BB%B6%26lt%3Bdiv%26gt%3B%2F%2F%26amp%3Bnbsp%3B%26lt%3Bspan%20style%3D%26quot%3Bbackground-color%3A%20transparent%3B%26quot%3B%26gt%3B%E8%A7%A3%E5%AF%86%26lt%3B%2Fspan%26gt%3B%26lt%3Bspan%20style%3D%26quot%3Bbackground-color%3A%20transparent%3B%26quot%3B%26gt%3B%E9%83%A8%E5%88%86%E9%85%8D%E7%BD%AE%26lt%3B%2Fspan%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22311.5%22%20y%3D%22389%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%E5%A4%87%E4%BB%BD%20conf%26lt%3Bdiv%26gt%3B%26amp%3Bnbsp%3B%E6%96%87%E4%BB%B6%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22312%22%20y%3D%22323%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%E5%90%AF%E5%8A%A8%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22311.5%22%20y%3D%22459%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22%E6%81%A2%E5%A4%8D%E5%AF%86%E6%96%87%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22311.5%22%20y%3D%22529%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22354.5%22%20y%3D%22353%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22354.5%22%20y%3D%22388%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22419%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22454%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22489%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22524%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22559%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22354%22%20y%3D%22629%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22%2F%2F%20%E6%81%A2%E5%A4%8D%E5%A4%87%26lt%3Bdiv%26gt%3B%E4%BB%BD%E6%96%87%E4%BB%B6%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22108%22%20y%3D%22223%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3B%22%20edge%3D%221%22%20source%3D%2214%22%20target%3D%2211%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22yes%22%20style%3D%22edgeLabel%3Bhtml%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bresizable%3D0%3Bpoints%3D%5B%5D%3B%22%20vertex%3D%221%22%20connectable%3D%220%22%20parent%3D%2212%22%3E%3CmxGeometry%20x%3D%22-0.1134%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20as%3D%22offset%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22if%20exist%20bak%20file%26lt%3Bdiv%26gt%3Brestore%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rhombus%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22310%22%20y%3D%22223%22%20width%3D%2290%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20target%3D%2214%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22355%22%20y%3D%22180%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22448%22%20y%3D%22343%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3BexitX%3D0.5%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.5%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3B%22%20edge%3D%221%22%20source%3D%2214%22%20target%3D%224%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22398%22%20y%3D%22393%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22448%22%20y%3D%22343%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22check_start%20%E8%84%9A%E6%9C%AC%26lt%3Bdiv%26gt%3B%2F%2F%20%E5%8F%AA%E5%85%81%E8%AE%B8%E5%90%8C%E6%97%B6%E6%9C%891%E4%B8%AAstart%E8%84%9A%E6%9C%AC%E5%9C%A8%E8%BF%90%E8%A1%8C%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22291%22%20y%3D%22136%22%20width%3D%22131%22%20height%3D%2244%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22193%22%20y%3D%22114%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22264%22%20y%3D%22114%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22flock%22%20style%3D%22edgeLabel%3Bhtml%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bresizable%3D0%3Bpoints%3D%5B%5D%3B%22%20vertex%3D%221%22%20connectable%3D%220%22%20parent%3D%2218%22%3E%3CmxGeometry%20x%3D%22-0.1549%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20y%3D%22-1%22%20as%3D%22offset%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22442%22%20y%3D%22175%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22506%22%20y%3D%22175%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22exit%201%22%20style%3D%22edgeLabel%3Bhtml%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bresizable%3D0%3Bpoints%3D%5B%5D%3B%22%20vertex%3D%221%22%20connectable%3D%220%22%20parent%3D%2220%22%3E%3CmxGeometry%20x%3D%22-0.0833%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20as%3D%22offset%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22END%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22312%22%20y%3D%22630%22%20width%3D%2286%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/883297.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Failed to load module script Expected a JavaScript module script 解决方案

部署若依前端vue3到云服务器的时候,一直在转圈圈加载中,最后排查出来是vite打包的时候的一个设置出错了 按照下图的加一个点即可解决。本文来自博客园,作者:程序员鲜豪,转载请注明原文链接:https://www.cnblogs.com/hg-blogs/p/18714033

内测之家-安全机制-签名(一)

API 加签的意义身份验证:在网络交互中,服务器需要确定请求的来源是否可靠。通过对请求进行加签,服务器可以验证请求是否来自合法的客户端。客户端使用独特的密钥进行签名操作,服务器能够依据已知的密钥信息对签名进行校验,只有签名验证通过,才能确认请求源自合法身份,有…

支付宝 IoT 设备入门宝典(上)设备管理篇

相信不少朋友最近都被支付宝“碰一下”广告刷屏,“不用打开APP 支付就碰一下”几个字一出简直自带BGM……其实“碰一下”就是支付宝 IoT 设备的一种,趁着热度还在,我会分为设备管理和设备经营上下两篇,简单介绍一下支付宝 IoT,以及在日常使用管理中的常见问题解决方案,本…

【贪心】区间问题

最大不相交区间数量 演唱会、计算最多能观看几场演出样例1 输入 2 720 120 840 120输出 1样例2 输入 2 0 60 75 60输出 2C++代码 // Problem: #OD268. 演唱会、计算最多能观看几场演出 // Contest: Hydro // Memory Limit: 256 MB // Time Limit: 1000 ms // 区间问题:求最大不…

第五讲 搜索算法

第一题 自然数的拆分思路: 1.通过递归的方式将每个数从1开始拆分 2.每次拆分的后一个数大于等于前一个数,确保拆分结果不重复第二题 填涂颜色思路: 1.将外圈的0也都围成圈 2.只需将剩下的0变成2第三题 显示图像AC代码:第四题 健康的荷斯坦奶牛AC代码:

vxe-table 展开行的使用,子表复杂渲染,解决固定列与展开行重复渲染问题

vxe-table 展开行的使用,子表复杂渲染,解决固定列与展开行重复渲染问题,需要注意最新版本才支持 官网:https://vxetable.cn 同时支持虚拟滚动和展开行与固定列、子表复杂渲染,需要注意最新版本才支持使用 <template><div><vxe-grid v-bind="gridOptio…

【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注什么是阿里云百炼? 阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。 不论是开发者…

段码屏驱动控制器/最大可支持144的LCD液晶显示屏驱动芯片VK1056C SSOP24

产品品牌:永嘉微电/VINKA 产品型号:VK1056C 封装形式:SSOP24 概述 VK1056C是一个点阵式存储映射的LCD驱动器,可支持最大 56点(14SEG 4COM)的LCD屏, 也支持2COM和3COM的 LCD屏。单片机可通过三条通信线配置显示参数和发送显示 数据,也可通过指令进入省电模式。LJQ4055特…

Redis 持久化原理分析和使用建议

本文主要介绍了 Redis 提供的三大持久化机制,即 AOF 日志、RDB 快照以及混合持久化机制。作者:来自 vivo 互联网存储团队- Qiu Xu 本文主要介绍了 Redis 提供的三大持久化机制,即 AOF 日志、RDB 快照以及混合持久化机制。一、Redis 为什么需要进行持久化 Redis 为了保证性…

微积分重点回忆

一、微分 用求导来得到微分,也就是函数的变化量。 一阶导数:求一阶导数,之前在校时,大部分人接触它,主要是为了求极值。也就是另f`(x)=0的时候,这个x代入后的f(x)就是极值。实际上,求一阶导数,几何意义就是求变化率,所以,对于路程求时间的导数,就是速度,对于一个曲…

springai +embeding 模型 +elasticsearch

项目pom.xml1 <?xml version="1.0" encoding="UTF-8"?>2 <project xmlns="http://maven.apache.org/POM/4.0.0"3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4 xsi:schemaLocation="ht…

川崎机器人维修kasawaki维护注意事项

为确保川崎机械臂的正确安全操作、防止人员伤害和财产损失,请遵守下述方框符号表达的安全信息。 ——注意事项 在进行Kasawaki川崎机器人维修操作前,请注意如下事项以确保安全。 1. 在开始检查之前,请务必断开控制器电源及元电源。设置一个“检查及维护中”的醒目标志牌,将…