运行级别 

 System 运行级别  systemd目标名称
(CentOS7)
 作用
 0 runlevel0.target
poweroff.target
关机
1 runlevel1.target
rescue.target
救援模式
2 runlevel2.target
multi-user.target
多用户模式(文本模式,命
令行模式)
3 runlevel3.target
multi-user.target
多用户的文本界面(文本模
式,命令行模式)
4 runlevel4.target
multi-user.target
多用户模式,与3一致
5 runlevel5.target
graphical.target
多用户的图形界面(桌面模
式)
6 runlevel6.target
reboot.target
重启

 

centos7系统

查看系统启动运行级别
[root@dmxsp ~]# systemctl get-default
multi-user.target

修改默认启动运行级别
[root@dmxsp ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

[root@dmxsp ~]# systemctl get-default
graphical.target

系统的systemd

1.systemd的由来

Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。
Centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
Centos6 相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
Centos7 所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)

2.什么是systemd

systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。
与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
(1) 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能
(2) 用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

3.systemd的优势

1、最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等) systemctl
2、Centos7支持开机并行启动服务,显著提高开机启动效率。
3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。
4、Centos7服务的启动与停止不在使用脚本进行管理,C7下面都是配置(/usr/lib/systemd/system/xxxx.service),也就是/etc/init.d(CentOS 6)下不在有脚本。
5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

4.systemd相关配置文件

/usr/lib/systemd/system/:类似Centos6系统的启动脚本,/etc/init.d/
/etc/systemd/system/:系统配置存放,类似Centos6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/:系统配置存放

5.systemd管理服务相关命令

systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

 

systemctl命令(7系
统)
作用
systemctl start
crond.service
启动服务,当前正在运行
systemctl stop
crond.service
停止服务
systemctl restart
crond.service
重启服务
systemctl reload
crond.service
优雅的重启,重新加载配置(不终止服务,不影响正在处理的请求/用户)
systemctl status
crond.servre
查看服务运行状态
systemctl is-active
sshd.service
查看服务是否在运行中
systemctl mask
crond.servre
禁止服务运行
systemctl unmask
crond.servre
取消禁止服务运行

 

systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

systemctl命令(7系统) 作用
systemctl enable
crond.service
开机自动启动
systemctl disable
crond.service
开机不要自动启动
systemctl list-unit-files 查看各个级别下服务的启动与禁用
systemctl is-enabled
crond.service
查看特定服务是否为开机自启动
systemctl daemon
reload
创建新服务文件或者变更设置

 

systemctl 服务状态说明

服务状态 状态说明
loaded 服务单元的配置文件已经被处理, 配置放在了 /usr/lib/systemd/system/
active(running) 服务的一个或多个进程在运行中 最常见的状态 start
active(exited) 一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出)
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行 stop
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务不能被设定开机启动,但可以由其他服务启动该服务

 

systemctl的journalctl日志

systemctl 启动/重启/关闭 服务失败,报错
journalctl -xe   -e按页显示   -x进行一些翻译,指出一些故障提示
找error 或 err 或warn 或fail
journalctl -n 20    查看最后20行
journalctl -f       动态查看日志
journalctl -p err   查看日志的级别
journalctl -u crond 查看某个服务的单元的日志

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。