Linux系统服务管理

1
环境:CentOS Linux release 7.5.1804 (Core)

chkconfig

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。
参数用法:
--add增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文内删除相关数据。
--level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动

示例:chkconfig --list
显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态,如(chkconfig --list nginx)。

[root@moli_linux1 ~]$ chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysqld             0:关    1:关    2:开    3:开    4:开    5:开    6:关
netconsole         0:关    1:关    2:关    3:关    4:关    5:关    6:关
network            0:关    1:关    2:开    3:开    4:开    5:开    6:关
nginx              0:关    1:关    2:开    3:开    4:开    5:开    6:关
php-fpm            0:关    1:关    2:开    3:开    4:开    5:开    6:关

示例2:将network服务3级别停止掉

$ chkconfig --level 3 network off

示例3:将network服务345级别停止掉

$ chkconfig --level 345 network off

示例4:将network服务从启动列表删除

$ chkconfig --del network

示例5:将network服务加入到开机启动列表

$ chkconfig --add network

将一个服务或者脚本加入开机启动列表,需要将这个服务的启动文件(shell脚本)放入/etc/init.d目录下,而且启动文件中需要有# chkconfig:2342 74 83和# description:xxx这样格式的存在。如:
图片描述

systemd

CentOS7中使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。

如果是通过RPM或者YUM安装,则应用程序一般在/usr/lib/systemd/system目录下创建对应的配置文件,我们可以通过系统提供的systemctl命令来管理这些服务。
systemd的特性有:

  • 支持并行化任务
  • 同时采用socket式与D-Bus总线式激活服务;
  • 按需启动守护进程(daemon);
  • 利用 Linux 的 cgroups 监视进程;
  • 支持快照和系统恢复;
  • 维护挂载点和自动挂载点;
  • 各服务间基于依赖关系进行精密控制。

systemctl命令

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

1. 查看系统中所有服务

$ systemctl list-units --all --type=service

2. 让服务开机启动(以crond服务为例)

$ systemctl enable crond.service

3. 不让服务开机启动

$ systemctl disable crond                   

4. 查看状态

$ systemctl status crond    

如图,crond服务正在启动状态
图片描述
5. 停止服务

$ systemctl stop crond              

6. 启动服务

$ systemctl start crond          

7. 重启服务

$ systemctl restart crond             

8. 检查服务是否开机启动

$ systemctl is-enabled crond   

enabled表示开机启动,disabled表示开机不启动
图片描述

注意:设置一个服务开机启动或者开机不启动的时候,会有一个提示,例如,设置crond服务开机启动或者不启动,都会有一行提示如下:


# 设置开机自启
$ systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.

# 设置开机不自启
$ systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.   

当enable一个服务时,就会创建一条软连接,而disable的时候就会挪走这个软连接。

你可能感兴趣的

载入中...