美文网首页
CentOS7系统systemctl设置自定义服务管理

CentOS7系统systemctl设置自定义服务管理

作者: 网络小乙 | 来源:发表于2021-02-26 11:17 被阅读0次
    启动脚本目录
    • 系统的启动脚本目录:/usr/lib/systemd/system/
    • 自定义的启动脚本目录:/etc/systemd/system/
    启动脚本文件说明

    以nginx为例,systemd中nginx的启动脚本如下:

    [Unit]
    Description=The Nginx HTTP Server Manager
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx
    ExecReload=/usr/sbin/nginx -s reload
    ExecStop=/usr/sbin/nginx -s stop
    
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    脚本文件说明:

    • [Unit] 服务的说明
      1. Description:服务描述;
      2. After:服务的依赖,当依赖的服务启动之后再启动自定义的服务;
    • [Service] 服务的运行参数设置
      1. Type:
        1)Type=simple(默认值):systemd认为该服务将立即启动,服务进程不会fork,如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型;
        2)Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程;
        3)Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes使得systemd在服务进程退出之后仍然认为服务处于激活状态;
        4)Type=notify:与 Type=simple相同,但约定服务会在就绪后向systemd发送一个信号。这一通知的实现由 libsystemd-daemon.so提供;
        5)Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
      2. PIDFile:pid文件路径;
      3. ExecStartPre:服务启动前要运行的命令;
      4. ExecStart:服务的具体运行命令;
      5. ExecReload:服务的重启命令;
      6. ExecStop:服务的停止命令;
        注意:服务启动、重启、停止命令全部要求使用绝对路径。
      7. PrivateTmp:是否给服务分配独立的临时空间;
    • [Install] 服务安装的相关设置,可设置为多用户
    使用命令(以nginx为例)
    • 启动服务
      systemctl start nginx.service
      #或者nginx.service可以省略service(其余命令同样适用)
      systemctl start nginx
      
    • 重启服务
      systemctl restart nginx
      
    • 关闭服务
      systemctl stop nginx
      
    • 设置开机自动启动服务
      systemctl enable nginx
      
    • 停止开机自动启动服务
      systemctl disable nginx
      
    • 查看服务运行状态
      systemctl status nginx
      
    • 查看所有正在运行的服务
      systemctl list-units --type=service
      #查看所有服务(包括不在运行的)
      systemctl list-units --all --type=service
      

    相关文章

      网友评论

          本文标题:CentOS7系统systemctl设置自定义服务管理

          本文链接:https://www.haomeiwen.com/subject/vzqmfltx.html