系统服务控制
systemctl 控制类型 服务名称
控制类型
start: 启动
stop:停止
restart:重新启动 (先stop服务,在start服务,服务会中断)
reload:重新加载 (服务不会中断)
status:查看服务状态
enable:开机自启动
disable:开机禁用
系统服务的启动和控制
ntsysv系统服务管理工具(字符型界面)
1、ntsysv
[root@server2 ~]# ntsysv
附加:按上下键选择服务,空格键选择是否开机自启该服务,Tab键选择确定或取消
系统运行级别
0——关机
1——单用户模式,启动最小的服务进程,可以想象为windows的安全模式,主要用于系统修复
2——不完全的命令行模式,不包含NFS服务(网络文件共享服务)
3——完全的命令行模式,就是标准字符界面
4——系统保留给用户自定义
5——图形模式
6——重新启动
ntsysv --level 级别列表
[root@server2 ~]# ntsysv --level 3 4 5
附加:
按照默认设置,只有当前运行级别会被设置,要配置不同的运行级别,使用“--level”选项来指定一个或多个运行级别
例如:命令“ntsysv --level 3 4 5”配置运行级别3、4和5
通过命令来改变系统服务:systemctl工具
设置取消开机自启动
systemctl is-enable 服务名称
举例
[root@server2 ~]# systemctl disable sshd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
[root@server2 ~]# systemctl is-enabled sshd //查看系统服务状态
disabled //取消开启自启动
systemctl enable/disable 服务名称
举例
设置开机自启动
[root@server2 ~]# systemctl enable sshd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.servie.
[root@server2 ~]# systemctl is-enabled sshd //查看系统服务状态
enabled //开机自启动
ntsysv命令与systemctl工具的区别
1、ntsysv工具
提供一个交互式、可视化窗口
可以在字符终端运行
便于集中管理多个服务
2、systemctl工具
不提供交互式、可视化窗口
管理单个服务效率更高
区别:
runlevel只能查看切换运行级别与当前运行级别
systemctl时能查看默认的运行级别
修改系统默认的运行级别
systemctl set-default multi-user.target //修改为字符型界面
systemctl set-default graphial.target //修改为图形化界面
[root@server2 ~]# systemctl get-default //查看默认状态
graphical.target //图形化状态
默认切换为图形化的界面
[root@server2 ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
[root@server2 ~]# systemctl get-default
multi-user.target //修改为字符状态模式
s:软连接 f:强制删除(原始存在的文件)
以上命令需要重新启动
不重启机器而切换当前的运行级别
#isolate 用于切换当前的运行级别
切换到multi-user.target(命令行界面)
systemctl isolate multi-user.target
切换到graphical.target(图形界面)
systemctl isolate graphial.target
举例
[root@server2 ~]# systemctl isolate graphical.target (在字符型页面使用)
举例:
[root@server2 ~]#systemctl isolate multi-user.target
查看当前的运行级别
[root@server2 ~]# who -r
运行级别 5 2020-12-10 19:29
[root@server2 ~]# runlevel
N 5 N:表示没有切换过运行级别,此时的运行级别为5
[root@server2 ~]# init 3 切换运行级别3
此时运行级别就发生改变,之前的运行级别为3
输入init 5 ,再次切换运行级别
(init 3:字符型界面)(init5:图形化界面)
[root@server2 ~]# systemctl isolate multi-user.target (切换到字符型界面)
[root@server2 ~]# systemctl isolate graphical.target (切换到图形化界面)
附加:以上重启之后会跳转到默认的界面状态,若想使其保持同一状态,就需要修改默认状态的配置
查看一个运行级别下面所有的unit
#list-dependencies: 分析指定target各unit之间的依赖关系,如果不指明target,则表示是默认的target
#systemctl list-dependencies multi-user.target
multi-usre.target
ntsysv系统服务管理工具
ntsysv
ntsysv --level 级别列表
按照默认设置,只有当前运行级别会被配置。要配置不同的运行级别,使用“--level”选项来指定一个或多个运行级别。例如,命令“ntsysv --level 345”配置运行级别3、4和5。
说明:各个service前的红色圆点,如果是绿色,表示正在运行中,active如果是红色色,表示是inactive
分析指定target各unit之间的依赖关系
systemctl list-dependencies multi-user.target
查看哪些target引用了当前运行级别的target
#--reverse
systemctl list-dependencies multi-user.target --reverse
multi-user.target
multi-user.target被graphical.target所引用
列出系统中包含的所有target
[root@server2 ~]# systemctl list-unit-files --type=target
systemctl 与关机/重启相关的命令
1.关闭cpu,但未关闭电源
systemctl half
2.关闭电源
systemctl poweroff (建议使用这个,这个会真正关闭电源)
3.重启机器
systemctl reboot
对所有unit的操作
1.列出所有ative的unit,注意:列出的unit是显示是否active
systemctl list-units
说明:systemctl 与 systemctl list-units 功能相同
2.列出所有unit,包括inactive状态的
systemctl list-units --all
3.列出所有未运行的unit,即状态是inactive的
systemctl list-units --all --state=inactive
4.列出当前活动状态(active)的所有服务单元
systemctl list-units --type=service
5.列出所有状态(包括active和inactive)的所有服务unit
systemctl list-units --type=service --all
6列出所有unit文件,注意:这里显示是否enabled
systemctl list-unit-files
针对四种state的说明
enable:已建立自启动链接
disabled:没建立自启动链接
static:该设置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖
masked:该设置文件被禁止建立启动链接
7.列出一个服务所依赖的单元
#list-dependencies列出一个Unit的所有依赖
systemctl list-dependencies firewalld.service
8.查看unit文件
#cat:用来指定要查看的unit文件
systemctl cat openresty.service
# /usr/lib/systemd/system/oenresty.servic
9.重新加载所有修改过的unit文件
#daemon-reload :当我们手动修改/添加unit文件后,需要执行daemon-reload
systemctl daemon-reload
10.显示指定unit的所有底层参数
systemctl show openresty.service
也可只看其中的一项:
systemctl show -p PIDFile openresty.service
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
系统服务的启动和控制
查看系统服务的启动状态
systemctl is-enabled 服务名称
设置系统服务的启动状态
systemctl enable/disable 服务名称
优化启动过程
ntsysv工具
提供一个交互式、可视化窗口
可以在字符终端运行
便于集中管理多个服务
systemctl工具
不提供交互式、可视化窗口
管理单个服务效率更高
附加:
daemon:系统为了具备某些功能需要开启相应的服务,服务就是我们说的service,但是service的提供者是一些程序,所以为了完成这个service的程序,我们称呼它为daemon。即为完成某个服务需要一个daemon在后台中运行,没有这个daemon就不会有service,基本上每个服务都能找到一个它的daemon,所以,昨天学的systemctl daemon-reload非常好用!!
getty:这个服务是为了实现多终端功能的,什么是多终端呢?就是类telnet的多线程,为了允许多用户同时登陆时系统的这个功能而实现的