Linux--编写系统服务脚本

news2025/1/23 21:21:18

       编写一个名为myprog的系统服务脚本,通过位置变量s1指定的start、stop、restart、status控制参数,分别用来启动、停止、重启sleep进程,以及查看sleep进程的状态。其中,命令sleep用来暂停指定秒数的时间,这里仅用做测试,在实际运维工作中应将sleep改为相应后台服务的控制命令序列。

[root@node01 ~]# vim myprog
#!/bin/bash
case "$1" in
start)
   echo -n "正在启动sleep服务..."
   if sleep 7200 &
 then                         //在后台启动sleep进程
       echo "OK"
   fi
   ;;
stop)
   echo -n "正在停止sleep服务..."
   pkill "sleep" &> /dev/null
echo "OK"                     //停止sleep进程
    ;;
status)
   if pgrep "sleep" &>/dev/null ; then  //判断并提示sleep进程状态

      echo "sleep服务已经启动."
   else
      echo "sleep服务已经停止."
   fi
   ;;
restart)                     //先停止、再启动服务
   $0 stop
   $0 start
   ;;
*)                           //默认显示用法信息
   echo "用法:$0 {start|stop|status|restart}"
esac

[root@node01 ~]# chmod +x myprog  //添加执行权限
[root@node01 ~]# ./myprog start

[root@node01 ~]# ./myprog status

[root@node01 ~]# ./myprog stop

[root@node01 ~]# ./myprog reload  //未提供此参数,按默认处理

       在Linux系统中,源码软件包编译安装后提供的服务控制脚本使用了 case分支语句;也有一些 源码包没有提供服务控制脚本,编译安装后可参照上例自行编写服务控制脚本,平时控制各种系统 服务时,提供的start、stop、restart等位置参数,正是由case语句结构来识别并完成相应操作的,有 兴趣的同学可自行查阅这些脚本内容。

     若要将myprog 服务交给 systemd来管理,还需要在/lib/systemd/system 目录下添加相应的 myprog.service配置文件。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新ChatGPT网站系统源码+AI绘画系统+支持GPT语音对话+详细图文搭建教程/支持GPT4.0/H5端系统/文档知识库

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

关于增强监控以检测针对Outlook Online APT活动的动态情报

一、基本内容 2023年6月,联邦民事行政部门(FCEB)在其Microsoft 365(M365)云环境中发现了可疑活动。该机构迅速向Microsoft和网络安全和基础设施安全局(CISA)报告了此情况。经过深入调查&#x…

【内存泄漏】编码实现内存泄漏检测功能

编码实现内存泄漏检测功能 使用脚本统计 meminfo 判断是否有内存泄漏 使用 bash 或 python 脚本循环抓取指定进程的 meminfo 保存到 txt 文件;使用 python 脚本解析出txt 文件中的 PSS 信息,借助 pyecharts 或其他可视化三方库将数据以折线图可视化&am…

探秘 Python 协程:解锁异步编程的超能力

概要 在 Python 的异步编程领域,协程(Coroutines)扮演了核心角色。协程提供了一种轻量级的并发编程方式,使得开发者能够有效地处理 I/O 密集型任务和高并发需求。本文旨在深入探讨 Python 中的协程概念,其底层机制及实…

XPM_CDC_SINGLE(UG974)

Parameterized Macro: Single-bit Synchronizer(参数化宏:单比特同步器) MACRO_GROUP: XPMMACRO_SUBGROUP: XPM_CDCFamilies: UltraScale, UltraScale 1、 Introduction(介绍) 此宏将一个一位信号从源时钟域同步到目…

MyBatis增删改查基础及其xml文件

目录 一.增删改查基础 1.增 增Insert 获取自增ID 对insert参数进行重命名 2.删 3.改 4.查 1)对MySQL查询结果进行重命名 从MySQL层面--as 从mybatis层面--Results注解 复用Results的定义 2)配置自动转换驼峰命名(推荐) 二.Mybatis xml配置…

80x86汇编—指令系统

顺序是按照我们老师教的顺序,仅仅作为复习笔记。 汇编入门真的简单,深入难,毕竟学过计组CPU都只寄组的难处,指令系统不在话下了。 MOV 下图说明了一个MOV指令能够从哪里传到哪里,总结成一句话就是:立即数不…

【Linux】进程周边007之进程控制

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.进程创建 2.进程终止 2.…

【MySQL】事务、事务隔离级别、死锁

文章目录 1. 事务1.1 事务的属性 ACID1.2 创建事务1.3 autocommit 2. 并发和锁定2.1 并发问题 3. 事务隔离级别3.1 读未提交3.2 读已提交3.3 可重复读:MySQL的默认事务隔离级别3.4 序列化 4. 死锁 1. 事务 事务:单个工作单元的一组SQL语句。事务中的所有…

【NI-RIO入门】理解Windows、Real Time与FPGA之间数据通信的原理

于NI kb摘录 1.概述 对于NI RIO系列设备(CompactRIO、sbRIO、myRIO等)进行编程时,需要注意有三个不同的组件。 人机界面 (HMI) 。有时称为“主机”,为用户提供图形用户界面(GUI),用于监控系统…

基于SpringBoot简洁优雅的个人博客系统

源代码下载地址: 点击这里下载 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或…

React学习计划-React16--React基础(四)生命周期和diffing算法,key的作用

1. 生命周期 1. 声命周期的三个阶段(旧) 初始化阶段:由ReactDOM.render()触发—初次渲染 1. constructor() 2. componentWillMount() 3. render() 4. componentDidMount() > 常用一般在这个钩子中做一些初始化的事情,例如&am…

Javascript知识点锦集

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/135165704 出自【进步*于辰的博客】 文章目录 1、其他知识点链接7、关于 false8、关于 null 与 …

【设计模式】命令模式

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、什么是命令模式? 二、命令模式的优点和应用场景 三、命令模式的要素和实现 3.1 命令 3.2 具体命令 3.3 接受者 …

抖店只能用官方电子面单?2024抖店玩法解读,附面单使用教程

我是王路飞。 正在做抖店的商家,应该都发现一件事情了,那就是现在的抖店好像不让拍单了,只能使用抖音的电子面单,打单发货。 说实话,这种情况已经出现过太多次了,导致很多商家不以为然。 我曾经也说过&a…

Midjourney v6 正式发布,AI创新工坊同步更新

Midjourney v6 开发团队将从2023 年 12 月 21 日今晚开始,在寒假期间让社区测试Midjourney v6模型的 alpha 版本。 要打开它,V6请从提示下方的下拉菜单中选择/settings或--v 6在提示后键入。 Midjourney v6 基本型号有哪些新功能? 更准确的…

受控代码生成-CCS 23

Large Language Models for Code: Security Hardening and Adversarial Testing 1.Introduction2.Background3.受控代码生成4.SVEN4.1.Inference4.2.Training4.2.1.训练样本4.2.2.loss函数 4.3.数据集构建 5.使用场景5.1.安全性增强5.2.对抗测试 6.实验6.1.实验设置6.2.Main Ex…

【数据结构和算法】---栈和队列的互相实现

目录 一、用栈实现队列1.1初始化队列1.2模拟入队列1.3模拟出队列1.4取模拟的队列头元素1.5判断队列是否为空 二、用队列实现栈2.1初始化栈2.2模拟出栈2.3模拟入栈2.4取模拟的栈顶元素2.5判读栈是否为空 一、用栈实现队列 具体题目可以参考LeetCode232. 用栈实现队列 首先要想到…

目标检测应用场景—数据集【NO.24】行人车辆检测数据集2

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

Neural-Chat-7B:Intel如何塑造下一代对话AI

引言 在人工智能的领域中,对话模型的进步正改变我们与技术的互动方式。Intel近期推出的Neural-Chat-7B模型,不仅标志着对话AI的一大步前进,更预示着未来人机交流的新方向。本文将深入探索这一模型的核心特性、训练过程及其在实际应用中的潜力…