认识系统服务(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.unit
、man systemd.service
、man systemd.timer
查询/etc/systemd/system/
下面配置文件的语法,并使用systemctl daemon-reload
加载后,才能自行编写服务与管理服务
3.3 systemctl针对timer的配置文件
除了atd
与crond
之外,可以通过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