首页 > 系统相关 >Linux学习笔记(12)——认识系统服务(daemon)

Linux学习笔记(12)——认识系统服务(daemon)

时间:2022-11-14 09:25:31浏览次数:47  
标签:daemon 12 target service 0.0 systemctl Linux root

认识系统服务(daemon)

一、什么是daemon与服务(service)

系统为了某些功能必须要提供一些服务(不论是系统本身还是网络方面),这个服务就称为service,完成这个service的程序称为daemon

1.1 systemd使用的unit分类

systemd将各服务定义为unit,而unit又分类为service、socket、target、path、timer等不同的类别,方便管理与维护。

[admin@localhost ~]$ ll /usr/lib/systemd/system/ | grep -E '(vsftpd|multi|cron)' 
-rw-r--r--. 1 root root  318 Aug  9  2019 crond.service
-rw-r--r--. 1 root root  623 Aug 31  2021 multipathd.service
-rw-r--r--. 1 root root  492 Sep  1 22:57 multi-user.target
drwxr-xr-x. 2 root root  258 Nov  1 09:07 multi-user.target.wants
lrwxrwxrwx. 1 root root   17 Nov  1 09:07 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Nov  1 09:07 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 Nov  1 09:07 runlevel4.target -> multi-user.target

二、通过systemctl管理服务

2.1 通过systemctl管理单一服务(service unit)的启动/开机启动与查看状态

服务的启动有两个阶段:

  • 开机的时候设置要不要启动这个服务
  • 你现在要不要启动这个服务
systemctl [command] [unit]
command主要有:
start   :立刻启动
stop    :立刻关闭
restart :立刻重新启动
reload  :不关闭,重新加载配置文件,让设置生效
enable  :开机启动
disable :开机不启动
status  :列出状态
is-active :有没有正在运行
is-enable :开机时有没有默认要启用这个unit

2.2 通过systemctl查看系统上所有的服务

systemctl [command] [--type=TYPE] [--all]
command:
    list-units       :依据unit显示目前有启动的unit,加上--all才会列出没启动的
    list-units-files :依据/usr/lib/systemd/system/内的文件,将所有文件列表说明
--type=TYPE:unit类型,主要有service、socket、target等

2.3 通过systemctl管理不同的操作环境(target unit)

常见操作环境:

  • multi-user.target
  • graphical.target

不重新启动而转不同的操作环境:systemctl isolate unit.target
设置默认环境:systemctl set-default unit.target

2.4 通过systemctl分析各服务之间的依赖性

systemctl list-dependencies [unit] [--reverse]

2.5 关闭网络服务

查看网络端口:

[root@localhost admin]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      68621/X             
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1095/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1261/master         
tcp6       0      0 :::6000                 :::*                    LISTEN      68621/X             
tcp6       0      0 :::22                   :::*                    LISTEN      1095/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1261/master         
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           18334/avahi-daemon: 
udp        0      0 0.0.0.0:38307           0.0.0.0:*                           18334/avahi-daemon: 

查看avahi-daemon:

[root@localhost admin]# systemctl list-units --all | grep avahi-daemon
  avahi-daemon.service      loaded    active   running   Avahi mDNS/DNS-SD Stack
  avahi-daemon.socket       loaded    active   running   Avahi mDNS/DNS-SD Stack Activation Socket

关闭avahi-daemon:

[root@localhost admin]# systemctl stop avahi-daemon.service
Warning: Stopping avahi-daemon.service, but it can still be activated by:
  avahi-daemon.socket
[root@localhost admin]# systemctl stop avahi-daemon.socket 
[root@localhost admin]# systemctl disable avahi-daemon.service avahi-daemon.socket 
Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.
[root@localhost admin]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      68621/X             
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1095/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1261/master         
tcp6       0      0 :::6000                 :::*                    LISTEN      68621/X             
tcp6       0      0 :::22                   :::*                    LISTEN      1095/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1261/master     

三、systemctl针对service类型的配置文件

3.1 systemctl配置文件相关目录简介

  • 系统默认的配置文件:/usr/lib/systemd/system
  • 管理员若要修改或自行设计:/etc/systemd/system/

3.2 自己的服务自己做

管理员应使用man systemd.unitman systemd.serviceman systemd.timer查询/etc/systemd/system/下面配置文件的语法,并使用systemctl daemon-reload加载后,才能自行编写服务与管理服务

3.3 systemctl针对timer的配置文件

除了atdcrond之外,可以通过systemd.timer亦即timers.target的功能,来使用systemd的时间管理功能

PS:一些不需要的服务可以关闭

标签:daemon,12,target,service,0.0,systemctl,Linux,root
From: https://www.cnblogs.com/I-am-Sino/p/16887988.html

相关文章

  • 16.Linux-默认权限控制命令umask
    1.umaskLinux中umask的工作方式与chmod命令类似,它也用于定义文件或目录的权限。它们之间的区别在于chmod用于改变已有文件或目录的权限,而umask用于定义新建文件或目录的......
  • Linux 安装 Docker
    Docker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月),EE即企业版,强调安全,付费使用,支持周期24个月。DockerCE分为stabletest和nightly三个更新频道。......
  • CF1292E Rin and The Unknown Flower 题解
    IO交互题fflush(stdout)害人不浅!!1注意到如果我们发起询问C和O就可以花费2的代价知道整个串,不过代价过高,所以我们考虑减小点代价。考虑发起询问CO,CH,CC,这样我......
  • 转载 有人负责,才有质量:写给在集市中迷失的一代 李松峰 李松峰 2012-08-23
    原文:AGenerationLostintheBazaar (发表于ACMQueuevol.10,no.8,2012)作者:保尔-亨宁·凯普(Poul-HenningKamp)翻译:[@李松峰][2]感谢[@蔡学镛][3][@蒋涛CSDN][4]......
  • 宋宝华:Linux内核中用GFP_ATOMIC申请内存究竟意味着什么?
    本文目的本文补充校正一些Linux内核开发者关于GFP_ATOMIC的认知不完整的地方,阐述GFP_ATOMIC与free内存watermark的关系,并明确什么时候应该用GFP_ATOMIC申请内存。目录:G......
  • 《Linux内核设计与实现》内核数据结构6.2队列 P78-81
    队列与堆栈队列只允许在队列的前端(front,队头)进行删除操作,而在队列的后端(rear,队尾)进行插入操作。当队列中没有元素时,即front=rear,称为空队列。在队列中插入一个队列元素称......
  • Linux常用命令
    目录前言常用命令nmobjdumpreadelffile前言常用命令nmnm-Dolibxxx.soobjdumpobjdumpxxreadelfreadelfxxxfilefilexxx......
  • 《Unix/Linux系统编程》学习笔记11
    第十三章TCP/IP和网络编程一、知识点归纳(一)网络编程简介  如今,上网已成为日常生活的需要。虽然大多数人可能只把互联网作为一种信息收集、网上购物和社交媒体等的工......
  • Linux运维笔记[5]-家庭局域网
    搭建私人小世界owncloud私人云盘[https://www.cnblogs.com/mecforlove/p/10392913.html]dockerpullownclouddockerpullmysql:5.7dockerrun--nameowncloud-mysq......
  • chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存
    1.常用保存Sources源码的两种方法1.1单个文件直接右键另存为1.2单个页面保存网页,就会把引用到的所有文件下载下来如果页面很多,文件也很多,静态资源也很多,那么得一......