centos设置自定义服务并开机自启动

news/2024/9/29 23:29:18

1、编写自定义脚本
cat /root/test.sh

!/bin/bash

每隔5s打印当前时间并输出到指定文件里

while true
do
echo "date '+%Y-%m-%d %H:%M:%S'" >> /root/a.log
sleep 5
done

2、将脚本设置成服务
vim /etc/systemd/system/zdy.service

[Unit]
Description=zidingyi-shell #需修改
After=network.target

[Service]
Type=simple
User=root
ExecStart=/bin/bash /root/test.sh #需修改,执行的命令
Restart=on-failure

[Install]
WantedBy=multi-user.target

3、设置开机自启
systemctl start zdy.service #手动开启服务
systemctl enable zdy.service #设置为开机自启动

查看开机服务项
[root@XIEXC ~]# systemctl list-unit-files | grep enable | grep zdy*
zdy.service enabled

4、验证
reboot后
tail -f /root/a.log

验证完记得删除此测试服务!!!

附:service文件参数详情
1、Unit部分
[Unit]
Description=zidingyi-shell
After=network.target

是启动顺序与依赖关系

1)Description字段:给出当前服务的简单描述。
2)After字段:表示本服务应该在某服务之后启动。(After和Before字段只涉及启动顺序,不涉及依赖关系。设置依赖关系,需要使用Wants字段和Requires字段。)
3)Wants字段:表示本服务与某服务之间存在“依赖”系,如果被依赖的服务启动失败或停止运行,不影响本服务的继续运行。
4)Requires字段,表示本服务与某服务之间存在“强依赖”系,如果被依赖的服务启动失败或停止运行,本服务也必须退出。

2、Service部分
[Service]
Type=simple
User=root
ExecStart=/bin/bash /root/test.sh
Restart=on-failure

1)Type字段:定义启动类型
simple(默认值):ExecStart字段启动的进程为主进程。forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。
oneshot:类似于simple,但只执行一次,Systemd会等它执行完,才启动其他服务。
dbus:类似于simple,但会等待D-Bus信号后启动。
notify:类似于simple,启动结束后会发出通知信号,然后Systemd再启动其他服务。
idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。
2)ExecStart字段:启动服务时执行的命令,可以是可执行程序、系统命令或shell脚本
3)Restart字段:服务程序退出后,Systemd的重启方式

no(默认值):退出后不会重启;on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启

3、Install部分

[Install]
WantedBy=multi-user.target

定义如何安装这个配置文件,即怎样做到开机启动

1)WantedBy字段:表示该服务所在的Target。

(Target的含义是服务组,表示一组服务。WantedBy=multi-user.target指的是,自定义脚本所在的Target是multi-user.target(多用户模式)。这个设置非常重要,因为执行systemctl enable zdy.service命令时,zdy.service会被链接到/etc/systemd/system/multi-user.target.wants目录之中,实现开机启动的功能。)

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

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

相关文章

Vue 3深度探索:自定义渲染器与服务端渲染

这篇文章介绍了如何在Vue框架中实现自定义渲染器以增强组件功能,探讨了虚拟DOM的工作原理,以及如何通过SSR和服务端预取数据优化首屏加载速度。同时,讲解了同构应用的开发方式与状态管理技巧,助力构建高性能前端应用。title: Vue 3深度探索:自定义渲染器与服务端渲染 date…

【干货分享】.NET人脸识别解决方案

前言 前段时间有同学在DotNetGuide技术社区交流群提问:.NET做人脸识别功能有什么好的解决方案推荐的吗?今天大姚给大家推荐2款.NET开源、免费、跨平台、使用简单的人脸识别库,希望可以帮助到有需要的同学。 人脸识别应用场景 现如今人脸识别应用场景比较广泛如:安防监控、人…

git-jenkins阶段04 jenkins自由风格项目(发布, 自动触发器, 返回状态给gitlab), maven项目, pipeline流水线项目

1.Jenkins创建项目点击创建一个新任务#类型: 自由风格项目: php,c,python项目 maven项目:要编译的,像java项目 pipeline:流水线操作创建一个自由风格项目,如图 项目配置中,可以选择丢弃旧的构建,只保存7天的构建记录,最多保留10个构建记录。(可配可不配) 构建一般只用shel…

ABC355E Guess the Sum 题解

前缀和上建图,有点典,但赛时没想出来ABC355E Guess the Sum 题目大意 给定一个长度为 \(2^n\) 的序列 \((A_0,A_1,\dots,A_{2^n-1})\),每次可以询问一个长度为 \(2^i\) 的区间 \([l,r]\),满足 \(l\) 是 \(2^i\) 的倍数,标准输入会返回 \([l,r]\) 的区间和 \(\bmod 10\) 的…

单文件静默安装包 2024年6月14日

单文件静默安装包 2024年6月14日"D:\Prog\7z SFX Builder\单文件静默安装包.txt" "D:\Prog\7z SFX Builder\单文件静默安装包.txt" Version 1.0 Builder 2024年6月14日1、目的目标 制作Windows系统平台上的应用软件的静默安装包, 例如:一键安装MS-Offic…

c/c++设计模式----命令模式

1. 通过一个范例引出命令模式代码编写方法//红烧鱼,锅包肉#include <iostream> #include <list>#ifdef _DEBUG //只在Debug(调试)模式下 #ifndef DEBUG_NEW #define DEBUG_NEW new(_NORMAL_BLOCK,__FILE__,__LINE__) //重新定义new运算符 #define new DEBUG_N…

增补博客 第二十二篇 python 牛顿迭代法

【题目描述】编写程序,使用牛顿迭代法求方程在x附近的一个实根。【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。【输入格式】请在一行中输入方程系数a、b、c、d和实数x,数据中间以空格为间隔。【输出格式】对每一组输入的数据,输出牛顿迭代法…

python学习笔记-scrapy源码流程和自定义爬虫框架

一、scrapy源码流程流程要点:1、执行CrawlerProcess构造方法  2、CrawlerProcess对象(含有配置文件)的spiders     2.1、为每个爬虫创建一个Crawler     2.2、执行d=Crawler.crawl(...)       d.addBoth(_done)     2.3、CrawlerProcess对象._active={…