CentOS7--5--服务控制

目录

五、服务控制

[toc]

Systemd

Systemd对linux来说,就是一个init程序,可以作为sysVinitUpstat的替代

RHEL7监视和控制systemd的主要命令是systemctl,该命令可以用于查看系统状态和管理系统及服务。

RHEL7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。每一个服务以.service结尾,一般会分为3部分:[Unit][Service][Install]

36

[Unit]

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重载命令,ExecStop为停止命令,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]

[Install]部分是服务安装的相关设置,可设置为多用户的.

注意: 如果服务没有Install段落,一般意味着应该通过其它服务自动调用它们

使用systemd时,可通过正确编写单元配置文件来解决其依赖关系。典型的情况是,服务A要求服务B在A启动之前运行。在此情况下,向服务A配置文件中的 [Unit] 段添加 Requires=BAfter=B 即可

我们对servicechkconfig两个命令都不陌生,RHEL7系统中systemctl是管制服务的主要工具,它整合了chkconfigservice功能于一体。

systemctl命令的基本操作格式是:

回顶部

systemctl 动作服务名.service

查看一下--help的信息

systemd提供更优秀的框架以表示系统服务间的依赖关系实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,systemd的目标是尽可能启动更少进程;尽可能将更多进程并行启动。

分析系统状态

回顶部

systemctl 或systemctl list-units \#输出激活的单元

systemctl list-units --type=service \#列出active状态的服务

systemctl list-unit-files 列出所有已安装服务

systemctl --failed \#显示启动失败的服务

systemd-cgls以 树形列出正在运行的进程

所有可用的单元文件存放在/usr/lib/systemd/system//etc/systemd/system/目录(后者优先级更高)

使用单元:

回顶部

一个单元可以是系统服务(.service)、挂载点(.mount)、sockets.sockets)。

使用systemctl控制单元时,通常需要使用单元文件的全名,包括扩展名(例如sshd.service)。但是有些单元可以在systemctl中使用简写方式。如果无扩展名,systemctl默认把扩展名当作 .service。例如sshdsshd.service是等价的。

挂载点会自动转化为相应的 .mount 单元。例如 /home 等价于home.mount

设备会自动转化为相应的.device 单元,所以/dev/sda2 等价于dev-sda2.device

systemctl 常用命令

回顶部

命令 作用
systemctl start <单元> 立即启动单元
systemctl stop <单元> 立即停止单元
systemctl restart <单元> 重启单元
systemctl reload <单元> 重新读取单元配置
systemctl status <单元> 输出单元运行状态
systemctl is-enabled <单元> 检查单元是否配置为自动启动
systemctl enable <单元> 开机自动启动单元
systemctl disable <单元> 取消开机自动激活单元
systemctl is-active<单元> 查看单元是不是正在运行
systemctl daemon-reload 重新载入 systemd,扫描新的或有变动的单元

电源管理:

回顶部

systemctl reboot \#重启

systemctl poweroff \#退出系统并停止电源

例如:

systemctl is-enabled iptables.service  
命令 作用
systemctl is-enabled servicename.service 查询服务是否开机启动
systemctl enable *.service 开机运行服务
systemctl disable *.service 取消开机运行
`systemctl start *.service 启动服务
`systemctl stop *.service 停止服务
systemctl restart *.service 重启服务
`systemctl reload *.service 重新加载服务配置文件
systemctl status *.service 查询服务运行状态
systemctl mask *.service 禁用指定服务
systemctl unmask *.service 激活指用服务

注:*代表某个服务的名字,如http的服务名为httpd

案例:

查看服务的状况

37

停止sshd服务,查看状态

38

状态表示为dead服务已经停止。

disable 服务,禁止开机自动运行

39

开机自动加载,并启动该服务

40

通过mask来禁用该服务,这样一旦服务终止,则无法再启动,必须通过unmask解除禁用才能使用systemctl start sshd来运行服务

41

除了上面提到的基本功能,systemctl还可以查询当前加载的模块单元,注意后缀为service的才是我们需要管理的服务

42

可以通过type来过滤掉其他类型的单元

systemctl list-unit-files –type service

回顶部


results matching ""

    No results matching ""