Linux-系统服务管理

        从CentOS7开始,采用systemctl命令管理系统服务,类似Windows的“计算机管理->服务和应用程序->服务”功能

        服务的配置文件存放在/usr/lib/systemd/system目录中

        重点关注的服务有防火墙(firewalld.service)、远程登陆(sshd.service,SSH协议)、文件传输(vsftpd.service,FTP协议)。

一、systemctl常用命令

        systemctl 操作 服务名

        (1)启动服务

                systemctl start name.service

                注意name.service的.service可以省略不写,以下两条命令的效果相同。

                systemctl start firewalld                #启动防火墙服务

                systemctl start firewalld.service   #启动防火墙服务

        (2)停止服务

                systemctl stop name.service

        (3)重启服务

                如果服务没有启动,就启动它

                systemctl restart name.service

        (4)查看服务是否已启动

                systemctl is-active name.service

        (5)查看服务的状态

                systemctl status name.service

                Loaded:关于服务是否已经加载的信息,文件的绝对路径以及是否被启用的注释

                Active:服务是否正在运行,然后是启动时间信息

                Process:进程额外信息

                Main PID:服务主进程pid

                CGroup:Control Groups额外信息

        (6)启用开机自启动服务

                systemctl enable name.service

        (7)禁用开机自启动服务

                systemctl disable name.service

        (8)查看服务是否为开机自启动

                systemctl is-enabled name.service

        (9)只重启正在运行中的服务

                systemctl try-restart name.service

        (10)显示所有的服务状态

                systemctl list-units --type service -all

                按空格键显示下一页,按q键退出

        (11)查看启动成功的服务列表

                systemctl list-unit-files|grep enabled

        (12)查看启动失败的服务列表

                systemctl --failed

        (13)查看所有服务的状态

                systemctl list-unit-files --type service

                按空格键显示下一页,按q键退出

        

 

        (14)列出在指定服务之前的服务(依赖)

                systemctl list-dependencies --after name.service

                按空格键显示下一页,按q键退出

二、添加自定义系统服务

(1)准备服务程序:demo

(2)编写自定义的系统服务脚本文件(.sh)

  •         start.sh: 目录/demo
  •         restart.sh:

                killall 目录/demo

                demo

  •         stop.sh:killall 目录/demo

                最后给脚本(.sh)文件赋予可执行权限

                chmod +x start.sh restart.sh stop.sh

(3)编写自定义服务的配置文件

        系统服务的启动/重启/停止/由它的配置文件决定,把demo服务命名为demo.service

        创建服务配置文件/usr/lib/systemd/system/ demo.service,内容如下:

        vi /usr/lib/systemd/system/demo.service

        

 三、自定义系统服务配置文件的含义

        1、Unit部分

        Unit部分是启动顺序与依赖关系

        Description字段:给出当前服务的简单描述

        Documentation字段:给出文档位置

        After字段:表示本服务应该在某服务之后启动

        Before字段:表示本服务应该在某服务之前启动

        After和Before字段只涉及启动程序,不涉及依赖关系。设置依赖关系,需要使用Wants字段和Requires字段。

        Wants字段:表示本服务与某服务之间存在”依赖“关系,如果被依赖的服务启动失败或停止运行,不影响本服务的继续运行。

        Requires字段:表示本服务与某服务之间存在”强依赖“关系,如果被依赖的服务启动失败或停止运行,本服务也必须退出。

 (2)service部分

        Service部分定义如何启动/重启/停止服务

        启动类型(Type字段

        Type字段定义启动类型,它可以设置的值如下:

        simple(默认值):ExecStart字段启动的进程为主进程

        forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。

        oneshot:类似于simple,但只执行一次,Systemd会等它执行完,才启动其他服务。

        dbus:类似于simple,但会等待D-Bus信号后启动。

        notify:类似于simple,启动结束后发出通知信号,然后Systemd再启动其他服务。

        idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。

        启动服务(ExecStart字段)

        启动服务时执行的命令,可以是可执行程序、系统命令或shell脚本

        重启服务(ExecReload字段)

        重启服务时执行的命令,可以是可执行程序、系统命令或shell脚本

        停止服务(ExecStop)

        停止服务时执行的命令,可以是可执行程序、系统命令或shell脚本

        如果RemainAfterExit字段设为yes,表示进程退出以后,服务仍然保持执行

        (3)Install部分

        Install部分定义如何安装这个配置文件,即怎样做到开机启动

        WantedBy字段:表示该服务所在的Target

        Target的含义是服务组,表示一组服务。如WantedBy=multi-user-target指的是,服务所在的Target是Multi-user.target(多用户模式)

        这个设置非常重要,因为执行systemctl enable demo.service命令时,demo.service会被链接到/etc/systemd/system/multi-user.target.wants目录中,实现开机启动的功能

四、使用自定义的服务 

         (1)重新加载服务配置文件

             每次修改了服务配置文件后,需要执行以下命令重新加载服务的配置文件。

             systemctl daemon-reload

        (2)  启动/停止/重启demo服务

                systemctl start demo #启动demo服务

                systemctl restart demo #重启demo服务

                systemctl stop demo #关闭启动demo服务

        (3)把demo服务设置为开机/关机自启动/停止

                systemctl is-enabled demo        #查看demo服务是否是开机自启动

                systemctl enable demo        #把demo服务设置为开机自启动

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值