总结:linux之Service_linux service-程序员宅基地

技术标签: Linux  运维  linux  服务器  

一、什么是.service文件?

Linux中.service文件是某项服务对应的配置文件,可用于systemd管理和控制的服务的设置。

比如我们的firstrun.service文件:

.service 文件通常包含3个模块,即:

[Unit]:表示启动顺序和依赖关系;

[Service]:服务的启动行为以及如何启动、重启、停止等信息

[Install]:表示如何安装配置文件。

二、如何管理?

.service 文件配置的服务常用systemd管理

然而,systemd有系统和用户区分;系统(/user/lib/systemd/system/)、用户(/etc/lib/systemd/user/)。

一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。

我们的firstrun是放在/user/lib/systemd/system/下的。

# 开启
service mysqld start

# 关闭
service mysqld stop

# 重启
service mysqld restart

三、内容介绍

[Unit]

作用:主要给出服务描述、启动顺序和依赖关系

Description:当前服务的简单描述。
Documentation:服务文档
After和Before:表示启动顺序,不涉及依赖关系。

  • Before=xxx.service表示本服务在xxx.service 启动之前启动
  • After=yyy.service表示本服务在yyy.service 之后启动。
  • 所以我们firstrun服务配置表示是在network.target之后启动。

Wants:表示该服务和某服务存在某种弱依赖关系,即某服务停止运行或退出不影响该服务继续运行。
Requires:表示”强依赖”关系,即某服务停止运行或退出,改服务也必须停止运行。
Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。

[Service]

作用:服务的启动行为以及如何启动、重启、停止等信息

ExecStart:指定启动服务的命令或者脚本。

  • [Service]
    ExecStart=/usr/lib/systemd/firstrun 
  • firstrun配置表示由/usr/lib/systemd/firstrun脚本启动服务。

ExecStop:指定单元停止时执行的命令或者脚本。

Restart:这个选项如果被允许,服务重启的时候进程会退出,会通过systemctl命令执行清除并重启的操作。

[Install]

作用:如何安装这个配置文件,即怎样做到开机自启
WantedBy字段:表示该服务所在的 Target。
Target的含义是服务组,表示一组服务。


WantedBy=multi-user.target指的是服务所在的Target是multi-user.target

Systemd 有默认的启动 Target就是multi-user.target,在这个组里的所有服务,都将开机启动

四、配置开机启动

1、在“/etc/init.d”目录下添加自启动脚本(Service管理)。

  • service命令原理:是去/etc/init.d/目录下,去执行相关程序脚本
  • 其实目录 /etc/init.d 是符号链接文件,实际上是链接到目录 /etc/rc.d/init.d
  • service管理是一种传统方式,即在/etc/rc.d/init.d下写脚本是一种老的方式,当前比较新的方式是systemctl,即在如下目录写脚本:/etc/systemd/system/multi-user.target.wants。

2、在“/etc/rc.local”文件中添加自启动命令“/usr/./hello.sh”或“cd /opt && ./hello.sh”。

3、将脚本放入:/etc/systemd/system/multi-user.target.wants(systemctl管理

我们进入/etc/systemd/system/multi-user.target.wants看下:看到了很多我们熟悉的服务,这些服务都是开机自动启动。

五、service和systemctl

Linux 服务管理两种方式service和systemctl

systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。

systemd是Linux系统最新的初始化系统,对应的进程管理命令是systemctl

systemctl命令兼容了service,即systemctl也会去/etc/init.d目录下,查看,执行相关程序

systemctl实际上将 service 和 chkconfig 这两个命令组合到一起。

Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在/usr/lib/systemd/system/目录。

systemctl enable命令用于设置开机自启,原理其实就是在上面两个目录之间,建立符号链接关系。即会在/etc/systemd/system/multi-user.target.wants/目录下新建一个/usr/lib/systemd/system/docker.service 文件的链接

systemctl命令脚本存放在/usr/lib/systemd/目录下,也兼容了service, 即也会去/etc/init.d目录下查看执行相关程序,所以systemctl命令会查看两个目录。

systemctl两个主要目录:

/usr/lib/systemd/system/firstrun.service:service目录

/usr/lib/systemd/firstrun:一般放置真实的启动脚本

启动http服务:systemctl start httpd
设置开机自启:systemctl enable httpd

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w2009211777/article/details/125489179

智能推荐

python控制蓝牙音响_[ESP32+MicroPython]智能音响控制-程序员宅基地

文章浏览阅读2k次。blinker支持多种智能音响控制,如天猫精灵、百度小度、小米小爱、京东叮咚等。这里以天猫精灵控制为例,blinker DIY支持将设备模拟成三种类型的智能家居:插座、灯、传感器。Blinker支持多种语音助手控制,如天猫精灵、百度小度,本节以天猫精灵控制为例。示例程序及blinker模块天猫精灵基本接入方法通常语音助手都是对特定的设备类型进行支持,确定设备类型后,才能响应对应的语音指令。使用bl..._blinker支持micpython么

(赠源码)python+django+Mysql上课点名系统03391-计算机毕业设计-程序员宅基地

文章浏览阅读112次。对于本上课点名系统的设计来说,它主要是采用后台采用了B/S的结构,它是应用mysql数据库,python等技术动态编程以及数据库进行努力学习和大量实践,并运用到了整个系统的设计当中,具体根据网上上课点名系统的现状来进行开发的,具体根据学生需求实现网上上课点名系统网络化的管理,各类信息有序地进行存储,进入上课点名系统页面之后,方可开始操作主控界面,系统功能包括管理员服务端:后台首页、系统用户(管理员、任课老师、学校领导、班主任、学生注册)、模块管理(课程类别、课程信息、课程签到、公告信息、签到提醒)。

移动端之禁止长按复制文字(兼容ios)_vue ios 禁止复制-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏2次。移动端之禁止长按复制文字在css中设置以下即可 *{ -webkit-touch-callout:none; /*系统默认菜单被禁用*/ -webkit-user-select:none; /*webkit浏览器*/ -khtml-user-select:none; /*早期浏览器*/ -moz-user-select:none;/*火狐*/ -ms-user-select:none; /*IE10*/ user-select:none;}在添加完_vue ios 禁止复制

Pycharm Debug调试(纯干货)-程序员宅基地

文章浏览阅读3w次,点赞65次,收藏374次。内容目录(原文见公众号python宝或www.xmmup.com)一、打断点二、代码调试三、界面小图标介绍四、控制台介绍# 数字转换为大写人民币import sysimport io..._pycharm debug

android MediaPlayer + GLSurfaceView播放视频_mediaplayer glsurfaceview-程序员宅基地

文章浏览阅读4.7k次。1、配置layout<?xml version="1.0" encoding="utf-8"?><LinearLayout ="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >_mediaplayer glsurfaceview

随便推点

Python入门实战:Python的文件操作-程序员宅基地

文章浏览阅读701次,点赞23次,收藏7次。1.背景介绍Python是一种强大的编程语言,它具有简洁的语法和易于学习。Python的文件操作是一种常用的编程技术,可以让程序员更方便地读取和写入文件。在本文中,我们将深入探讨Python的文件操作,涵盖了核心概念、算法原理、具体操作步骤、数学模型公式、代码实例以及未来发展趋势。1.1 Python的文件操作背景Python的文件操作是一种基本的编程技能,它允许程序员在程序中读取和写...

机器学习模型对比_机器学习的模型比较-程序员宅基地

文章浏览阅读1k次。1.SVM和LR(逻辑回归)1.1 相同点都是线性分类器。本质上都是求一个最佳分类超平面。都是监督学习算法。 都是判别模型。通过决策函数,判别输入特征之间的差别来进行分类。常见的判别模型有:KNN、SVM、LR。 常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。1.2 不同点损失函数不同,LR的损失函数为交叉熵;svm的损失函数自带正则化,而LR需要在损失函数的基础上加上正则化。 两个模型对数据和参数的敏感程度不同。SVM算法中仅支持向量起作用,大部分样本的增减对模型无影响;而L_机器学习的模型比较

纯C语言完整代码操作单链表(初始化、插入、删除、查找...)-程序员宅基地

文章浏览阅读901次,点赞3次,收藏10次。C语言操作单链表

实战打靶集锦-027-SoSimple1_sosimple 写入试验场-程序员宅基地

文章浏览阅读1.6k次,点赞32次,收藏47次。本文简单记录了博主的一次打靶经历,涉及wordpress扫描与爆破、social-warfare远程代码执行漏洞、sudo命令提权等_sosimple 写入试验场

用opencv的dnn模块做yolov5目标检测_opencv yolov5-程序员宅基地

文章浏览阅读7w次,点赞271次,收藏1.1k次。最近在微信公众号里看到多篇讲解yolov5在openvino部署做目标检测文章,但是没看到过用opencv的dnn模块做yolov5目标检测的。于是,我就想着编写一套用opencv的dnn模块做yolov5目标检测的程序。在编写这套程序时,遇到的bug和解决办法,在这篇文章里讲述一下。在yolov5之前的yolov3和yolov4的官方代码都是基于darknet框架的实现的,因此opencv的dnn模块做目标检测时,读取的是.cfg和.weight文件,那时候编写程序很顺畅,没有遇到bug。但是yolo_opencv yolov5

3的倍数(暴力搜索)_3的倍数csdn-程序员宅基地

文章浏览阅读168次。牛客小白月赛20D 3的倍数题目链接算法分析n最大为15,范围比较小,所以直接来采用爆搜就行算法实现#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<math.h>using namespace std;int ch[20][30];//ch[i][j]记录第i个字符串中j的个数,j为字符转换后的数字int dp[30];/_3的倍数csdn