linux服务 学习

news2024/12/23 10:32:07
服务(Service)

在Linux操作系统中,服务(Service)是一个基本概念,它通常指的是运行在后台的、持续提供特定功能或资源给系统内部组件或者网络上的客户端程序。

这些服务是系统正常运行和提供各种功能的关键组成部分,它们可以按照预定义的启动顺序自动加载,并在整个系统运行期间保持活动状态。

常见的Service
系统基础服务:

systemd:现代Linux发行版普遍采用的初始化系统,负责启动、停止和管理系统中的各种服务及进程。

cron 或 anacron:定时任务调度服务,用于按照预定时间执行命令或脚本。

syslog 或 rsyslog:日志记录服务,收集并管理系统的各种日志信息。

networking 或 network-manager:网络配置与管理服务,负责系统网络接口的启动和连接设置。

网络服务:

sshd:安全外壳(SSH)服务器,提供远程登录、文件传输等功能。

httpd 或 nginx:Web服务器,用于托管网站内容和服务HTTP请求。

dhcpd:动态主机配置协议(DHCP)服务器,自动分配IP地址给局域网内的客户端设备。

bind 或 dnsmasq:域名系统(DNS)服务器,处理域名解析请求。

smtpd(例如Postfix或Exim):邮件发送服务,实现电子邮件的发送功能。

数据库服务:

mysqld 或 mariadb-server:MySQL或MariaDB数据库服务器。

postgresql:PostgreSQL数据库服务器。

mongodb:MongoDB文档型数据库服务器。

文件共享服务:

nfs-server:网络文件系统(NFS)服务器,允许网络中的其他计算机通过网络挂载并访问本地文件系统。

samba:SMB/CIFS文件共享服务,支持Windows和其他操作系统之间的文件和打印共享。

身份验证与授权服务:

ldap 或 slapd:轻量级目录访问协议(LDAP)服务器,用于集中式用户和组账户管理。

krb5 或 kdc:Kerberos身份验证服务,提供网络安全认证。

虚拟化服务:

libvirtd 或 virt-manager:基于libvirt的虚拟机管理工具及相关服务。

容器管理服务:

docker:流行的容器引擎,用于部署和运行应用程序的容器化环境。

containerd 或 cri-o:容器运行时环境服务,为容器提供底层支持。

监控与性能分析:

snmpd:简单网络管理协议(SNMP)守护程序,提供网络设备状态监测。

prometheus 或 node_exporter:监控与警报系统,收集并展示系统和应用指标。

安全相关服务:

firewalld 或 iptables:防火墙服务,控制进出系统的网络流量。

fail2ban:防止恶意登录尝试的安全工具。

uwsgi 或 apache mod_wsgi:Web应用服务器中间件,用于托管Python等语言编写的Web应用程序。

Linux服务特点:

持久性:服务通常是长期运行的,不会因为用户注销或终端会话结束而停止运行。

后台运行:服务不依赖于用户的交互操作,它们在后台作为守护进程(Daemon)执行。

系统核心功能支持:一些服务直接与内核相关联,比如网络服务、文件系统服务、打印服务等,它们确保了系统的基础设施正常运作。

管理与控制:Linux系统通过init系统(如Systemd、SysV init或其他init替代品)来管理和控制服务的启动、停止、重启以及查看其运行状态等。

延伸:服务单元分类

Service命令

在Linux系统中,服务的配置文件通常放在/etc/init/或者/etc/init.d/目录下,具体取决于你的系统使用的是Upstart还是Systemd。

对于Systemd(现代Linux系统的初始化系统),服务单元通常有.service扩展名,例如sshd.service。这些.service文件存放在/etc/systemd/system/目录。

对于Upstart(早期Ubuntu系统使用的初始化系统),服务脚本通常有.conf扩展名,例如ssh.conf。Upstart的配置文件存放在/etc/init/目录。

作用:service命令可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

1.格式:service <service>

打印指定服务<service>的命令行使用帮助。

2.格式:service <service> start

启动指定的系统服务<service>

3.格式:service <service> stop

停止指定的系统服务<service>

4.格式:service <service> restart

重新启动指定的系统服务<service>,即先停止(stop),然后再启动(start)。

5.格式:chkconfig --list

查看系统服务列表,以及每个服务的运行级别。

6.格式:chkconfig <service> on

设置指定服务<service>开机时自动启动。

7.格式:chkconfig <service> off

设置指定服务<service>开机时不自动启动。

8.格式:ntsysv

以全屏幕文本界面设置服务开机时是否自动启动。

  1. 查看系统服务的状态:

service --status-all

chkconfig命令

chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。

chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。

chkconfig 是一个用来管理 Red Hat 及其衍生系统如 CentOS 中的启动项的命令行工具。如果你的系统中没有 chkconfig 命令,可能是因为你使用的是基于 Debian 的系统(如 Ubuntu),在这种系统中通常使用 update-rc.d 命令来管理启动项.

设置service开机是否启动:

chkconfig  name on/off/reset

on表示开启,off表示关闭,reset表示重置。

设置service运行级别

chkconfig --level levels

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:无网络连接的多用户命令行模式

等级3表示:有网络连接的多用户命令行模式

等级4表示:不可用

等级5表示:带图形界面的多用户模式

等级6表示:重新启动

列出service启动信息

# chkconfig --list [name]

如果不指定name,会列出所有services的信息

chkconfig [–add][–del][–list][系统服务]

chkconfig --add <名称>

chkconfig --del <名称>

–add增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

–del删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

systemctl 命令

systemctl 是一个用于检视和控制 systemd 系统和服务管理器的命令行工具。systemd 是用于启动、停止和管理 Linux 系统中的服务的守护进程。

systemd配置目录有以下三种

/usr/lib/systemd/system/:每个服务最主要的启动脚本设置,该目录存放软件默认的配置,不建议修改

/run/systemd/system/:系统执行过程中所产生的服务脚本,这些脚本的优先级要比

/usr/lib/systemd/system/ 高

/etc/systemd/system/:管理员依据主机系统的需求所创建的执行脚本,执行优先级又比 /run/systemd/system/ 高  

因此用户自定义的服务、修改的配置文件一般放在/etc/systemd/system/目录

/etc/systemd/system/目录下存放的是需要开机执行的服务,该目录下有大量的链接文件,链接到/usr/lib/systemd/system/目录下,该目录下的文件才是systemd实际启动的服务脚本文件。可通过ll命令查看,即/etc/systemd/system/存放的是链接快捷方式,/usr/lib/systemd/system/才是实际启动的服务脚本

如:

以vsftpd.service为例,如果要对其进行修改,可以在以下目录中进行操作。

/usr/lib/systemd/system/vsftpd.service:官方的默认配置文件;/etc/systemd/system/vsftpd.service.d/custom.conf:在 /etc/systemd/system 下面创建与配置文件相同文件名的目录,但是要加上 .d 的扩展名。然后在该目录下创建配置文件即可。配置文件后缀最好为 .conf 。该目录下的文件会附件进入/usr/lib/systemd/system/vsftpd.service

/etc/systemd/system/vsftpd.service.wants/*:此目录内的文件为链接文件,设置依赖服务的链接。意思是启动了 vsftpd.service 之后,最好再启动这目录下面建议的服务。/etc/systemd/system/vsftpd.service.requires/*:此目录内的文件为链接文件,设置依赖服务的链接。意思是在启动 vsftpd.service 之前,需要事先启动哪些服务的意思。

systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起

格式:systemctl [OPTIONS] COMMAND [UNIT]

OPTIONS: 可选参数,用于指定 systemctl 的行为。

COMMAND: 必需参数,用于执行特定的 systemd 命令,例如启动、停止或重新启动服务。

UNIT: 可选参数,用于指定要操作的服务或单元。

常用选项

-H, --host: 指定要在远程主机上运行的 systemd 实例的主机名或 IP 地址。

-a, --all: 显示所有已加载的单位,而不仅仅是当前活动的单位。

-t, --type: 根据指定的单元类型筛选单元列表。支持的单元类型包括 service、socket、mount 等。

-u, --user: 执行与当前用户相关联的用户级服务。

常见的命令:

  1. 列出所有可用单元:

systemctl list-unit-files

  1. 检查某个单元是否开机自启动:

systemctl is-enabled 服务名

  1. 检查某个服务的运行状态

systemctl status 服务名

Loaded:该行表示此服务是否会开机启动,Loaded有如下:

  1. enabled:这个 服务将在开机时被执行
  2. disabled:这个 daemon 在开机时不会被执行
  3. static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled的服务来唤醒
  4. mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。
  5. vendor preset表示第一次安装时的预设值。

Active:现在这个服务单元的状态是正在执行 (running) 或没有执行 (dead)。如下

  1. active (running):正有一只或多只程序正在系统中执行的意思
  2. active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。
  3. active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。
  4. inactive:这个服务目前没有运行。

  1. 列出所有服务:

systemctl list-unit-files --type=service

  1. 启动,停止,重启、重新加载服务配置服务

systemctl  start 服务名 

systemctl stop 服务名

systemctl restart 服务名   //重启服务

systemctl reload 服务名   //reload是在不重启服务的情况下重新加载配置文件

  1. 查询服务是否激活

systemctl is-active 服务名

  1. 配置是否开机自启动

systemctl disable 服务名   //开机不启动

systemctl enable 服务名   //开机启动

  1. 使用systemctl命令杀死服务

systemctl kill 服务名

列出指定服务的所有依赖项和服务间的启动顺序关系

systemctl list-dependencies 服务名

如:systemctl list-dependencies ssh.service

查看哪些服务的运行依赖于本服务

systemctl list-dependencies 服务名  --reverse

如:systemctl list-dependencies ssh.service --reverse

  1. 重新加载Systemd配置

systemctl daemon-reload

命令参数 参数说明

start 立刻启动后面接的unit

stop 立刻关闭后面接的unit

restart 立刻关闭后启动后面接的unit,亦即执行stop再start的意思

reload 不关闭后面接的unit的情况下,重载配置文件,让设定生效

enable 设定下次开机时,后面接的unit会被启动

disable 设定下次开机时,后面接的unit 不会被启动

status 目前后面接的这个unit 的状态,会列出是否正在执行、是否开机启动等信息。

is-active 目前有没有正在运行中

is-enable 开机时有没有预设要启用这个unit

kill 不要被kill这个名字吓着了,它其实是向运行unit的进程发送信号

show 列出unit的配置。

mask 注销unit,注销后你就无法启动这个unit了

unmask 取消对unit的注销

list-units 依据unit列出目前有启动的unit。若加上–all才会列出没启动的。(等价于无参数)

list-unit-files 列出所有以安装unit以及他们的开机启动状态(enabled、disabled、static、mask)。

–type=TYPE 就是unit type,主要有service,socket,target等

get-default 取得目前的 target

set-default 设定后面接的 target 成为默认的操作模式

isolate 切换到后面接的模式

编写.service

.service文件通常由三部分组成:

[Unit]: 定义与Unit类型无关的通用选项;用于提供unit的描述信息,unit行为及依赖关系等。

[Service]:与特定类型相关的专用选项;此处为Service类型。

[Install]:定义由"systemctl enable"及"systemctl disable"命令在实现服务启用或禁用时用到的一些选项。

Unit段的常用选项

Description:描述信息,意义性描述;

After:定义unit的启动次序;表示当前unit应晚于哪些unit启动;其功能与Before相反;

Before:表示当前unit应先于哪些unit启动。

Requies:被依赖的units无法启动时,当前的unit即无法启动;

Wants:当前这个units启动后最好还要启动其他的units比较好。

Confilcts:定义units 的冲突关系;只能二选一启动。

Service段的常用选项

Type:用于定义影响ExecStart及相关参数的功能的unit进程类型;

类型有:

simple:默认值,指定ExecStart字段的进程为主进程

forking:开子进程执行, 原生父进程结束后就会终止子进程运行。

Oneshot:执行一次

Dbus:

Notify:启动后发送会发送通知信号通知systemd

Idle:等其他任务结束后才运行

EnvironmentFile:环境配置文件;

ExecStart:指明启动unit要运行的命令或脚本;ExecStart, ExecStartPost

ExecStop:指明停止unit要运行的命令或脚本;

Restart:

可选项 描述

no 退出后不会重启

on-success 当进程正常退出时(退出码为0) 执行重启

on-failure 当进程不正常退出时(退出码不为0) 执行重启

on-abnormal 当被信号终止和超时执行重启

on-abort 当收到没有捕捉到的信号终止时执行重启

on-watchdog 当看门狗超时时执行重启

always 一直重启

KillMode

可选项  描述

control-group    杀掉当前进程中所有的进程

Process      杀掉当前进程的主进程

Mixed        主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号

None        不杀掉任何进程

TimeoutSec:此服务在启动或关闭时,因为某些原因无法顺利正常启动或结束,在等待多久进入强制结束的状态。

Install段的常用配置:

Alias:一个链接的,别名,

RequiredBy:依赖哪些unit;

WantBy:被哪些unit所依赖;一般是*.target unit

一般填为WantedBy=multi-user.target

例子:pgsql.service

[Unit]

Description=PostgreSQL database server

After=network.target

[Service]

Type=forking

User=postgres

Environment=PGSTARTTIMEOUT=200

Environment=PGDATA=/usr/local/pgsql/data

ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t ${PGSTARTTIMEOUT}

ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s

TimeoutSec=500

[Install]

WantedBy=multi-user.target

自定义自启动服务

新建test.service并编辑服务单元文件内容

[Unit]

Description=test Service

After=network.target

[Service]

Type=simple

ExecStart=/root/study/test/test

Restart=always

[Install]

WantedBy=multi-user.target

把该test.service放到 /etc/systemd/system目录下

修改test.service的权限,使其可执行 chmod 777 test.service

在终端输入下面命令,使重新加载Systemd配置

sudo systemctl daemon-reload

设置开机自启动服务

sudo systemctl enable test.service

(可选)立即启动服务

sudo systemctl start test.service

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

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

相关文章

目标检测 | yolov7 原理和介绍

相关系列&#xff1a; 目标检测 | yolov1 原理和介绍 目标检测 | yolov2/yolo9000 原理和介绍 目标检测 | yolov3 原理和介绍 目标检测 | yolov4 原理和介绍 目标检测 | yolov5 原理和介绍 目标检测 | yolov6 原理和介绍 目标检测 | yolov7 原理和介绍 目标检测 | yolov8 原理和…

Maven-05.依赖管理-依赖配置

一.依赖管理-配置 例如&#xff1a;我们要在maven项目中导入logback日志依赖&#xff0c;那么我们编辑pom.xml文件。 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</versio…

2023华为od机试C卷【转盘寿司】C 实现 单调栈

#include <stdio.h> #include <stdlib.h>/*单调栈 旋转寿司3 15 6 14 3 21 9 17*/ int main() {int i 0;int len 0;int data 0;int nums[501];char c ;while(scanf("%d",&nums[i]) 1){i;len;c getchar();if(c \n)break;}int *out NULL;int *s…

【顺序栈的实现1】--------含栈顶,栈底指针;栈顶指针指向栈顶元素的下一个位置

1. 栈的抽象数据类型定义&#xff1a; 2.顺序栈的存储方式 同一般线性表的顺序存储结构完全相同&#xff1a; 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。栈底一般在低地址端。 附设top指针&#xff0c;指示栈顶元素在顺序栈中的位置另设base指针&#xff0…

<数据集>斯坦福狗狗识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;20580张 标注数量(xml文件个数)&#xff1a;20580 标注数量(txt文件个数)&#xff1a;20580 标注类别数&#xff1a;120 标注类别名称&#xff1a;[Chihuahua, Japanese_spaniel, Maltese_dog, Pekinese, Shih-Tzu…

快速排序(Java实现)

目录 快速排序的思想 代码实现 思路 代码 快速排序的特点 快速排序的思想 快速排序和冒泡排序一样&#xff0c;是一种交换排序。快速排序的核心思想也是分治&#xff0c;分而治之。给定一个数组&#xff0c;先选定一个元素作为枢轴&#xff0c;然后将大于枢轴的放在右边&a…

Javaweb学习之Vue项目的创建(二)

学习资料 Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org) 准备工作都做完了&#xff0c;接下来开始Vue的正式学习。 第一步&#xff0c;打开VS Code 在VS Code里&#xff0c;我们也需要使用到终端&#xff0c;如果不是以管理员身份打开&#xff0c;在新建Vue项目的时候…

围棋棋盘的图像(识别)240801

识别: import tensorflow as tf import numpy as np from tensorflow.keras import layers, models from tensorflow.keras.utils import to_categorical from tensorflow.keras.preprocessing.image import load_img, img_to_array# 加载并预处理图像 def load_and_preproces…

Linux升级lib64中的libc.so.6导致所有命令失效

ls: relocation error: libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference 升级Glibc后出现所有shell命令都不可用 # systemctl status systemctl: relocation error: /lib64/libpthread.so.0: sy…

为视觉语言多模态模型进行偏好优化

训练模型使得它能够理解并预测人类偏好是一项比较复杂的任务。诸如 SFT (Supervised finetuning) 的传统的方法一般都需要耗费较大成本&#xff0c;因为这些算法需要对数据打上特定的标签。而偏好优化 (Preference Optimization) 作为一种替代选项&#xff0c;通常可以简化这一…

【10-21】设计原则

目录 一.开闭原则 二.里氏代换原则 三.依赖倒转原则 四.接口隔离原则 五.迪米特法则 六.合成复用原则 前言&#xff1a; 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可拓展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发…

关于WebSocket必知必会的知识点

什么是WebSocket WebSocket是一种网络传输协议&#xff0c;可以在单个TCP连接上进行全双工通信&#xff0c;位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;服务器可以主动向客户端发送消息。在WebSocket API中&#xff0c;浏览器和…

20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡

fdisk -l df -h df -t df -T mount 20240820让飞凌的OK3588-C的核心板在Linux R4下挂载1TB的NTFS格式的TF卡 2024/8/20 18:03 【默认挂载到/run/media/mmcblk1&#xff0c;不用任何操作&#xff01;】 插入1TB的TF卡之后的dmesg信息&#xff1a; [ 876.551728] fdee0000.hdmi…

pandans读写分析csv文件

1.什么是pandans Pandas 是一个强大的 Python 库&#xff0c;主要用于数据处理和数据分析。它为 Python 提供了高效的数据结构和数据分析工具&#xff0c;使得数据处理变得更加简单和直观。 2.什么事csv文件 CSV 文件&#xff08;Comma-Separated Values&#xff0c;逗号分隔值…

点亮宇宙的温暖之光 —— COSMOSPANDA星际熊猫“寞”降临!

在这个科技日新月异的时代&#xff0c;我们往往在追求进步的同时&#xff0c;忽略了心中那份最真挚的情感与温暖。但今天&#xff0c;让我们共同迎接一位来自宇宙深处的温暖使者——COSMOSPANDA星际熊猫“寞”&#xff0c;它将用独特的方式&#xff0c;连接过去与未来&#xff…

3:2比例的程序员专业显示器,效率提升显著,摸鱼时间又多了

对于我们程序员来说&#xff0c;显示器的重要性不言而喻&#xff0c;作为我们与代码交流的直接工具&#xff0c;他影响着我们的工作效率、舒适度和整体编程体验。我在家用的是自己笔记本的屏幕&#xff0c;简单写写代码还行&#xff0c;涉及到多任务协同或者大代码量开发就有点…

Linux 下安装miniconda(少走弯路)

Miniconda 和 Conda 都是用于管理 Python&#xff08;及其他语言&#xff09;环境和包的工具。 conda对于我来说是太臃肿了&#xff0c;很多的包我不会使用&#xff0c;所以选择安装miniconda是一个较好的选择。 下面是linux安装miniconda的实际操作。 在以下的网站&#xf…

复现 LET-NET

摘要 稀疏光流法是计算机视觉中的一项基本任务。然而&#xff0c;它依赖于恒定的假设限制了其在高动态范围&#xff08;HDR&#xff09;场景中的适用性。在本研究中&#xff0c;我们提出了一种新的方法&#xff0c;旨在通过学习一个对光照变化具有鲁棒性的特征映射来超越图像的…

LabVIEW轨距实时动态检测系统

轨距实时动态检测系统解决铁路轨距不平顺现象&#xff0c;提高铁路运行安全性。系统利用高精度的激光位移传感器与数据同步采集技术&#xff0c;结合LabVIEW软件进行数据处理&#xff0c;有效提高了轨距检测的准确性与效率。 项目背景 随着铁路运输业的快速发展&#xff0c;轨…

速度+耐力,希迪智驾引领中国商用车自动驾驶发展

作者 | 魏启扬 来源 | 洞见新研社 资本市场对自动驾驶的投资热情依然不减。 不久前&#xff0c;科技巨头Alphabet重申了对自动驾驶未来的承诺&#xff0c;并表示将向其自动驾驶子公司Waymo投资50亿美元&#xff0c;分多年进行。 更早一点的5月份&#xff0c;孙正义旗下的…