systemctl控制:
init程序的作用
Linux系统和服务管理器
• 是内核引导之后加载的第一个初始化进程(PID=1)
• 负责掌控整个Linux的运行/服务资源组合
传统的init程序风格
• system v:顺序加载,RHEL5系列采用 开机最慢
• upstart:事件触发,RHEL6系列采用
systemd: 一个更高效的系统与服务管理器
• 开机服务并行启动,各系统服务之间的精确依赖。
• 配置目录:/etc/systemd/system
• 服务目录:/lib/systemd/system
• 主要管理工具:systemctl
unit配置单元:不同的unit决定了一组相关的启动任务
– service:后台独立服务
– socket:套接字,类似于ximetd管理的临时服务
– target:一套配置单元的组合,类似于传统“运行级别”(运行模式)
– device:对应udev规则标记的某个设备
– mount、automount;挂载点、触发挂载点
查看配置单元的运行状态:systemctl [-t service|target] [--all]
列出已定义的配置单元及自启状态:systemctl list-unit-files [-t service|target]
管理系统服务
列出活动的系统服务:systemctl -t service
列出所有系统服务(包括不活动的):systemctl -t service --all
• 控制服务状态(启动/停止/重启):systemctl start|stop|restart 服务名.service...
• 查看服务的运行状态: systemctl status|is-active 服务名.service...
• 查看服务是否自启: systemctl is-enabled 服务名.service...
• 设置服务是否开机自启: systemctl enable|disable 服务名.service...
systemctl enable 服务名.service... --now 7.2系统以上使用,马上启用服务
管理运行级别
Linux引导过程
加电自检-->MBR扇区-->GRUB配置(/boot/grub/grub.conf)-->root (hd0,0)
kernel (/boot/vmlinuz-....) --> /sbin/init (PID恒为1)
initrd (/boot/initrd-... .img)--> /etc/inittab:
/etc/rc.d/rc.sysinit
/etc/rc.d/rc 级别 (initdefault默认级别)(0、1、3、5、6)
--> /etc/rcX.d/快捷方式 (S75服务名、K24服务名)
--> /etc/rc.d/init.d/服务脚本
-->S99local --> /etc/rc.local (自定开机任务)
mingetty tty1-tty6 --> login --> 验证用户配置(passwd、shadow)
--> /bin/bash --> 用户正常执行命令
** 如果进入运行级别5,则继续 --> GNOME桌面环境 --> 登录窗口
RHEL6的运行级别
各运行级别含义:
0:关机
1:单用户模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:未分配使用
5:图形界面的多用户模式
6:重启
查看运行级别:runlevel
** 输出结果为2个值(前一次级别 当前级别)
** 若前一次为N,表示开机后未执行过切换
手动切换运行级别:init 级别
比如:init 3、init 5、init 0、init 6
RHEL7的运行级别 (运行模式:图形、字符)
multi-user.target 纯字符界面多用户
graphical.target 图形界面多用户
主要的启动配置文件
/etc/inittab:配置init程序的引导过程
/etc/rc.d/rc.sysinit:由init调用执行,设置网络/时钟、加载文件系统等一系列工作
/etc/rc.d/rc:由init调用执行,根据运行级别参数,加载/终止相应服务
/etc/rc.d/rc.local:由rc脚本调用执行,存放用户自定义的开机后自动执行的命令
/etc/rc.d/init.d/*:各系统服务的可执行脚本程序
** 上述路径中的 rc.d 通常可以省略,因为默认建立有相关的快捷方式
** 比如 /etc/init.d -> /etc/rc.d/init.d、 /etc/rc.local -> /etc/rc.d/rc.local
设置默认运行级别
[root@svr5 ~]# vim /etc/inittab
id:3:initdefault: 【修改为对应的运行级别值】
禁用TTY控制台的Ctrl+Alt+Del热键重启功能
[root@svr5 ~]# vim /etc/init/control-alt-delete.conf
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 【注释掉此行】
切换级别
列出可用运行级别:systemctl -t target
临时切换运行级别(运行模式)
# systemctl isolate multi-user.target #当前切换到字符模式
# systemctl isolate graphical.target #当前切换到图形模式
设置开机默认的运行级别(运行模式)
# systemctl get-default #查看默认的运行模式
# systemctl set-default graphical.target|multi-user.target
# systemctl get-default
# reboot
systemd简 介
系统启动和服务器进程由systemd系统和服务管理器进行管理。此程序提供了一种方式,可以在启动时和运行中的系统上激活系统资源、服务器守护进程和其他进程。
守护进程是在执行各种任务的后台等待或运行的进程。为了侦听连接,守护进程使用套接字。套接字可以由守护进程创建,或者与守护进程分离,并且可能由另一个进程创建(如systemd),随后在客户端建立连接时将套接字传递到守护进程。
服务通常指的是一个或多个 守护进程,但启动或停止一项服务可能会对系统的状态进行一次性更改(如配置网络接口),不会留下守护进程之后继续运行。
在RHEL7中,进程ID1属于systemd这一新的init系统。Systemd提供的新功能:
并行化功能,它可提高系统的启动速度。
按需启动守护进程,而不需要单独的服务。
自动服务依赖关系管理可以防止长时间超时,例如在网络不可用时不启动网络服务。
利用Linux控制组一起追踪相关进程的方式。
注意:有了systemd,基于shell的服务脚本仅用于几个传统服务。因此,带有设立了变量的配置文件将被取代,如/etc/sysconfig中可找到的配置文件。仍在使用中的配置文件作为systemd环境文件被纳入,并作为NAME=VALUE对进行读取。它们不再以shell脚本的形式提供。
systemctl命令用于管理各种类型的systemd对象,它们称为单元。可以通过systemctl -t help命令显示可用单元类型的列表。
重要:systemctl可以缩写或“省略”单元名称、进程树条目和单元说明,除非运行时带有-l选项。
#################################################
Linux服务管理
1. Linux服务的种类
1)独立监听的服务: 一旦启动后始终在后台运行,监听客户端访问,持续占用资源
每个服务有对应的可执行脚本,放在 /etc/init.d/ 下。其中有一个独立服务叫
xinetd ,负责管理各种临时服务
2)临时服务:要使用临时服务需要先启动xinetd服务(超级服务器),xinetd会持续运行。各临时服务统一由 xinetd 服务来管理(/etc/init.d/xinetd脚本)。临时服务只在有客户端访问时才被调出来,否则会退出运行。每个临时服务没有可执行脚本,只在 /etc/xinetd.d/下有各自的配置文件 |--> 开关设置:disable = yes|no
2. 如何控制独立服务
方式一:/etc/init.d/服务名 start|stop|restart|status|reload
方式二:service 服务名 start|stop|restart|status|reload
** 上述各控制参数由对应的服务脚本决定
3. 设置服务自启状态(在不同运行级别)
方式一,控制单个服务: chkconfig --list 服务名
chkconfig [--level 2345] 服务名 on|off
方式二,集中设置所有服务:ntsysv [--level 2345] 【在TTY终端下,按F1可获得服务描述】
** chkconfig、ntsysv工具对独立服务、临时服务都适用
** 临时服务的启动,是通过修改相关配置文件,再重启xinetd服务来完成的
默认情况下是没有启动脚本的
#################################################