zoukankan      html  css  js  c++  java
  • systemd 进程管理详解


    systemd进程管理


    systemd管理的优势

    1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)
    2.CentOS7 支持开机并行启动服务,显著提高开机启动效率
    3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
    4.CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本。
    5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

    systemd相关文件


    systemd控制的相关文件 CentOS6 CentOS7
    服务启动的脚本启动路径 /etc/init.d /usr/lib/systemd/system
    开机自启服务存放路径 /etc/rcN.d /etc/systemd/system/multi-user.target.wants/
    默认运行级别配置文件 /etc/inittab /etc/systemd/system/default.target

    CentOS7安装yum安装nginx的默认脚本启动路径

    [root@gong ~]# ll /usr/lib/systemd/system/nginx.service
    -rw-r--r-- 1 root root 618 Oct  3  2019 /usr/lib/systemd/system/nginx.service
    

    CentOS7开机自启动所在的目录,该目录包含在该级别启动时自启动的服务

    [root@gong ~]# ll /etc/systemd/system/multi-user.target.wants/
    

    CentOS7默认运行级别的控制,把它链接到/usr/lib/systemd/system/下面的不同级别,可以实现对不同默认级别的更改

    [root@gong ~]# ll /etc/systemd/system/default.target
    lrwxrwxrwx 1 root root 41 Apr 23 15:56 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
    

    systemd相关命令


    CentOS6 systemd CentOS7 作用
    /etc/init.d/nginx start systemctl start nginx 启动nginx服务
    /etc/init.d/nginx stop systemctl stop nginx 停止nginx服务
    /etc/init.d/nginx status systemctl status nginx 查看nginx的状态
    /etc/init.d/nginx restart systemctl restart nginx 重启nginx服务
    /etc/init.d/nginx reload systemctl reload nginx 不停止nginx服务,重新加载配置文件
    systemctl is-active nginx 判断nginx服务是否存活
    systemctl mask nginx 禁止运行服务
    systemctl unmask nginx 取消禁止运行服务

    CentOS7启动服务

    [root@gong ~]# systemctl start nginx
    

    CentOS7关闭服务

    [root@gong ~]# systemctl stop nginx
    

    CentOS7查看服务状态

    [root@gong ~]# systemctl status nginx
    ● nginx.service - The nginx HTTP and reverse proxy server
       Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
       Active: inactive (dead) since Sat 2020-04-25 08:55:55 CST; 12s ago
      Process: 7063 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
      Process: 7060 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
      Process: 7056 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
     Main PID: 7064 (code=exited, status=0/SUCCESS)
    
    Apr 25 08:55:44 gong systemd[1]: Starting The nginx HTTP and reverse proxy server...
    Apr 25 08:55:45 gong nginx[7060]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    Apr 25 08:55:45 gong nginx[7060]: nginx: configuration file /etc/nginx/nginx.conf test is successful
    Apr 25 08:55:45 gong systemd[1]: Started The nginx HTTP and reverse proxy server.
    Apr 25 08:55:55 gong systemd[1]: Stopping The nginx HTTP and reverse proxy server...
    Apr 25 08:55:55 gong systemd[1]: Stopped The nginx HTTP and reverse proxy server.
    

    Centos7重启服务

    [root@gong ~]# systemctl restart nginx
    

    CentOS7不重启服务重新加载配置文件

    [root@gong ~]# systemctl reload nginx
    

    CentOS7检查服务是否启动

    [root@gong ~]# systemctl is-active nginx
    active
    

    禁止取消服务运行

    [root@gong ~]# systemctl mask nginx
    Created symlink from /etc/systemd/system/nginx.service to /dev/null.
    [root@gong ~]# systemctl unmask nginx
    Removed symlink /etc/systemd/system/nginx.service.
    

    systemd开机自启动相关命令


    CentOS6 CentOS7 作用
    chkconfig --list systemctl list-unit-files 查看开机自启的服务
    chkconfig nginx on systemctl enable nginx 开机自启
    chkconfig nginx off systemctl disable nginx 关闭开机自启
    chkconfig --list nginx systemctl is-enabled nginx 查看指定的服务是否被开启
    chkconfig --add nginx systemctl daemon-reload 当手写脚本的时候让系统认识

    CentOS7查看开机自启动

    [root@gong ~]# systemctl list-unit-files
    

    CentOS7设置开机自启,实质上实在创建软链接

    [root@gong ~]# systemctl  enable nginx
    Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
    

    CentOS7关闭开机自启

    [root@gong ~]# systemctl disable nginx
    Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.service.
    

    CentOS7查看指定的服务是否被开启

    [root@gong ~]# systemctl is-enabled nginx
    disabled
    

    systemd服务状态


    服务状态 状态说明
    loaded 服务单元的配置文件已经被处理
    active(running) 服务的一个或多个进程在运行中
    active(exited) 一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出)
    active(waiting) 服务已经运行但在等待某个事件
    inactive 服务没有在运行
    enable 服务设定为开机运行
    disabled 服务设定为开机不运行
    static 服务不能被设定开机启动,但可以由其他服务启动该服务



  • 相关阅读:
    常见HTTP状态码
    Spring MVC 原理小结
    RESTful API
    java:IO流学习小结
    理解 Statement 和 PreparedStatement
    Hibernate缓存原理与策略
    APP运营
    网站常见术语
    php常见术语
    运维------术语名词
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13280738.html
Copyright © 2011-2022 走看看