首页 > 系统相关 >Linux中service文件

Linux中service文件

时间:2024-02-21 09:47:26浏览次数:49  
标签:文件 服务 配置文件 service 启动 systemctl Linux Unit

Linux中service文件

Linux服务依靠初始化系统systemd,有两种管理服务的方式:service文件和systemctl命令。

systemctl命令

systemctl start 服务名            开启服务
systemctl stop 服务名            关闭服务
systemctl status 服务名        显示状态
systemctl restart 服务名        重启服务
systemctl enable 服务名        开机启动服务
systemctl disable 服务名        禁止开机启动
systemctl list-units              查看系统中所有正在运行的服务
systemctl list-unit-files        查看系统中所有服务的开机启动状态
systemctl list-dependencies 服务名          查看系统中服务的依赖关系
systemctl mask 服务名                        冻结服务
systemctl unmask 服务名                      解冻服务
systemctl set-default multi-user.target     开机时不启动图形界面
systemctl set-default graphical.target      开机时启动图形界面
systemctl daemon-reload # 修改配置文件以后,需要重新加载配置文件,然后重新启动相关服务
systemctl enable postgresql.service # 设置服务开机自启动
systemctl is-enabled postgresql.service # 查询是否自启动服务
systemctl disable postgresql.service # 取消服务器开机自启动

# 显示某个 Unit 是否正在运行
systemctl is-active application.service

# 显示某个 Unit 是否处于启动失败状态
systemctl is-failed application.service

# 显示某个 Unit 服务是否建立了启动链接
systemctl is-enabled application.service
# 查看每个服务的启动耗时
systemd-analyze blame
# 查看当前运行的所有服务 
systemctl list-units
# 查看服务是否开机启动
systemctl list-unit-files

service配置文件

https://zhuanlan.zhihu.com/p/566818301

https://zhuanlan.zhihu.com/p/443473996

https://blog.csdn.net/w2009211777/article/details/125489179

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

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

systemctl enable命令用于在上面两个目录之间,建立符号链接关系。

开机时,systemd只执行/etc/systemd/system目录里面的配置文件。

service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节:

[Unit] # 表示启动顺序和依赖关系
Description:描述,
After:在network.target,auditd.service启动后才启动
ConditionPathExists: 执行条件
[Service] # 服务的启动行为以及如何启动、重启、停止等信息
EnvironmentFile:变量所在文件
ExecStart: 执行启动脚本
Restart: fail时重启
[Install] # 表示如何安装配置文件
Alias:服务别名
WangtedBy: 多用户模式下需要的

配置文件的区块

[Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。

Description:简短描述
Documentation:文档地址
Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
Condition...:当前 Unit 运行必须满足的条件,否则不会运行
Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败

[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。

WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中
RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
Alias:当前 Unit 可用于启动的别名
Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit

[Service]区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。

Type:定义启动时的进程行为。它有以下几种值。
Type=simple:默认值,执行ExecStart指定的命令,启动主进程
Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
Type=dbus:当前服务通过D-Bus启动
Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
Type=idle:若有其他任务执行完毕,当前服务才会运行
ExecStart:启动当前服务的命令
ExecStartPre:启动当前服务之前执行的命令
ExecStartPost:启动当前服务之后执行的命令
ExecReload:重启当前服务时执行的命令
ExecStop:停止当前服务时执行的命令
ExecStopPost:停止当其服务之后执行的命令
RestartSec:自动重启当前服务间隔的秒数
Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
Environment:指定环境变量

服务管理

img

这个列表显示每个配置文件的状态,一共有四种。

  • enabled:已建立启动链接;表示允许开机启动
  • disabled:没建立启动链接;表示禁止开机启动
  • static:该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖
  • masked:该配置文件被禁止建立启动链接
# 显示sshd服务的状态 
$ systemctl status sshd

img

  • Loaded行:配置文件的位置,是否设为开机启动
  • Active行:表示正在运行
  • Main PID行:主进程ID
  • Status行:由应用本身(这里是 httpd )提供的软件当前状态
  • CGroup块:应用的所有子进程
  • 日志块:应用的日志

Active行:

  active(running) 表示程序正在执行;
  atcive(exited) 执行一次就正常退出的服务,不在系统中执行任何程序;
  active(waiting) 正在执行中,处于阻塞状态,需要等待其他程序执行完才能执行;
  inactive (dead) 未启动状态;

标签:文件,服务,配置文件,service,启动,systemctl,Linux,Unit
From: https://www.cnblogs.com/3to4/p/18024486

相关文章

  • SonarQube 10.4 (macOS, Linux, Windows) - 清洁代码 (Clean Code)
    SonarQube10.4(macOS,Linux,Windows)-清洁代码(CleanCode)SonarQubeDataCenterEdition(JavaAppformacOS,Linux,Windows)请访问原文链接:SonarQube10.4(macOS,Linux,Windows)-清洁代码(CleanCode),查看最新版。原创作品,转载请保留出处。作者主页:sysin.or......
  • Studio 3T 2024.1 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持
    Studio3T2024.1(macOS,Linux,Windows)-MongoDB的专业GUI、IDE和客户端,支持自然语言查询TheprofessionalGUI,IDEandclientforMongoDB请访问原文链接:Studio3T2024.1(macOS,Linux,Windows)-MongoDB的专业GUI、IDE和客户端,支持自然语言查询,查看最新版......
  • 解决Linux卸载磁盘时出现umount: /home/mrc/wanglab: target is busy.
    问题描述:/home/mrc/wanglab是数据的挂载点,出现问题时我正在将数据从挂载点cp到本地,导致数据挂载点的数据无法访问(ls/home/mrc/wanglab会卡死)。于是我尝试umount,报以下错误:mrc@mrc-Precision-3660:~$sudoumount./wanglabumount:/home/mrc/wanglab:targetisbusy.错误产生......
  • Linux:系统性能监控工具-tsar安装和使用
    前言做性能验证往往需要去监控系统的各项性能指标,Linux系统监控工具有很多,但对于命令行操作,安装便捷,监控项较全面等方面,个人比较推荐tsartsar介绍TSAR(TaobaoSystemActivityReporter))是淘宝自己开发的采集工具。主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据......
  • 怎样建设供应商文件分发平台?这三点陷阱需注意
    供应商在市场经济中是不可或缺的角色,供应商作为重要的环节,串联起从商品生产到消费者的链路,而供应商特殊的点在于供应商并不能单独存在,相反它与上下游关系非常紧密。上游供应商是指向供应商提供原材料、零部件或其他支持的企业或组织。上游供应商通常负责生产或制造商品所需的原......
  • 大年学习linux(第五节---目录结构)
    五、目录结构可以用ls/查看linux的目录结构bindataetclibmediaoptrootsbinsysusrbootdevhomelib64mntprocrunsrvtmpvar以下是对这些目录的解释:/bin:bin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令......
  • 大年学习linux(第六节---软件安装)
    六、软件安装rpmRPM软件包的管理工具补充说明rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了......
  • Windows 10 修改文件的创建时间为修改时间(相册恢复)
    参考gpt环境软件/系统版本说明WindowsWindows10专业版22H219045.4046正文创建change_creation_time.ps1文件。#将文件的创建时间修改为修改时间functionChange-FileCreationTimeToModifyTime($filePath){$file=Get-Item$filePath......
  • linux 中 awk的特殊内置变量
     001、ARGC:命令行参数数组ARGV中元素的个数(c:count;v:variable)[root@PC1test1]#lsa.txtb.txt[root@PC1test1]#awk'{printARGC}'a.txt##ARGC:表示命令行参数数组ARGV中元素的个数222[root@PC1test1]#awk'{printlength(ARGV)}'a.txt......
  • 《Linux内核完全注释》(2)
    3内核编程语言和环境首先介绍了as86和GNUas汇编程序的语法和使用方法,对GNUC中的内联汇编、语句表达式、寄存器变量和内联函数等C语言扩展内容进行介绍,同时描述了C和汇编函数之间的相互调用机制。3.1as86汇编器是一个可以产生16位代码的汇编器,与之配套的是ld86链接器。其是B......