Liunx服务介绍

在Linux系统中,有一些特殊程序,启动后就会持续在后台执行,等待用户或者其他软件调用使用,这种程序我们成为服务。

Linux系统中服务的管理工具

  •   systemV
  •   systemd

一、systemV于init

  systemV当中有一个程序叫init,这个程序可以让系统中的service命令去调用/etc/rc.d/init.d/目录下的服务脚本,我们可以通过service命令去控制服务的启动与关闭,或者找到服务相应的执行文件,然后执行,比如/usr/sbin/httpd,这样才能启动一个服务。

该服务管理方式在RHEL7之前的系统中默认。

init的特点

  • 启动/停止/查看

  /etc/rc.d/init.d/servername  start/stop/restart/status

  或

  service servicename  start/stop/restart/status

  • 开机启动管理与查看

  chkconfig  --level 0-6 servername  on/off   指定一个服务在那个运行级别启动

  chkconfig --list servernamer  查看一个服务在哪个运行级别启动

  • setup图形化工具查看服务

  setup是RedHat私有化的命令工具,别的系统不一定支持

    方式1:使用setup 系统服务就可以看到全部自启动的服务

    选择系统服务查看全部service

  Liunx服务介绍

   用方向键选择服务名称,空格键选定服务是否设置为自启动。tab键切换到下面“确定|退出”    

    Liunx服务介绍

 

二、systemd与unit

  从CentOS7开始systemV,被效率更高的systemd所替代,对应命令systemctl ,并且systemctl也兼容了service (service命令作为systemd的入口,也是systemctl命令的封装)。

  system的优势

  • 并行处理所有服务,缩短开机时间
  • 响应速度快,通过systemctl命令就可以完成所有操作
  • 自动解决服务的依赖关系,类似yum
  • 方便记忆,安装类型对服务进行分类
  • 兼容init

 

 相关文件

/usr/lib/systemd/system/  服务的启动脚本,包含所有安装完成的服务设置文件

/run/system/system/  系统运行过程中的服务脚本优先级高于上一个文件

/etc/systemd/system/  管理员手动建立的服务启动脚本,优先级最高

服务类型

[root@localhost131 ~]# systemctl -t help
Available unit types:
service                          //服务单元,用于控制服务
socket                           //接口单元,进程间通信    
busname                       
target                           //目标单元,控制一组其它单元
snapshot                       
device                          //设备单元,控制动态的设备
mount                          //挂载单元,管理文件系统挂载点
automount                    //自动挂载单元,管理文件系统自动挂载点
swap                            //交换分区单元,用于管理swap设备或文件
timer                            //定时器单元,管理基于时间触发的动作
path                             //路径单元,监听文件系统路径,以用于基于路径的启动
slice                              //范围单元,管理与控制一组特定进程的资源占用
scope                            //范围单元,与service类似,系统自动创建       

 ⚪systemctl  管理命令

  1. 基本语法:systemctl  [start|stop|restart|status]  服务名  (临时生效,重启后恢复原来状态)
  2. 在systemd中,所有服务类型都被称为unit,主要分成6类:.service, .socket, .target, .path, snapshothot, .timer,它们都存放在/usr/lib/systemd/system/目录中

⚪systemctl设置服务的自启动状态

  1. systemctl  list-unit-files [ |grep  服务名] (查看服务开机启动状态)
  2. systemctl enable  服务名(设置开机自启)
  3. systemctl disable 服务名 (关闭服务开机自启动,CentOS7之后,不在使用chkconfig命令对各个运行级别的服务启动|关闭了,systemd默认对应的就是3和5两个级别)
  4. systemctl is-enabled  服务名 (查询某个服务是否开机自启动)
  5. systemctl list-units  --type=service  -all  列出所有service服务单元运行状态
  6. systemctl list-unit-files  查询所有已经安装的unit单元,是否设置开机启动。

⚪应用案例

1.systemctl  list-unit-fiels  查看所有安装的unit,是否设置开机启动

[root@localhost131 ~]# systemctl list-unit-files
UNIT FILE                                     STATE   
proc-sys-fs-binfmt_misc.automount             static  
dev-hugepages.mount                           static  
dev-mqueue.mount                              static  
proc-fs-nfsd.mount                            static  
proc-sys-fs-binfmt_misc.mount                 static  
sys-fs-fuse-connections.mount                 static  
sys-kernel-config.mount                       static  
sys-kernel-debug.mount                        static  
tmp.mount                                     disabled
var-lib-nfs-rpc_pipefs.mount                  static  
brandbot.path                                 disabled
cups.path                                     enabled 

 

ervice 的 disabled 和 enabled 状态都好理解,static 是个啥?在不存在的网站上一顿查找,找到如下这番解释:

"static" means "enabled because something else wants it". Think by analogy to pacman's package install reasons:

  • enabled :: explicitly installed
  • static :: installed as dependency
  • disabled :: not installed

意思是,状态为 static 的服务,是作为别的服务的依赖而存在。

2.查看当前防火墙的状态,关闭防火墙或重启防火墙。==》firewalld.service

查看firewalld状态为active

[root@localhost131 ~]#  systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2021-08-02 07:38:35 CST; 2 days ago
     Docs: man:firewalld(1)
 Main PID: 7081 (firewalld)
    Tasks: 2
   CGroup: /system.slice/firewalld.service
           └─7081 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

8月 02 07:38:34 localhost131 systemd[1]: Starting firewalld - dynamic firewall d.....
8月 02 07:38:35 localhost131 systemd[1]: Started firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.

systemctl stop|start firewalld 开启|关闭firewalld服务

这种方式只是临时生效,当重启系统后,还是回归到以前对服务的设置。

使用systemtcl enabl | disable  firewalld(设置开机启动或关闭服务)

 

上一篇:文本处理工具和正则表达式-文本处理和shell编程基础


下一篇:Git操作指南(2) —— Git Gui for Windows的建库、克隆、上传