zoukankan      html  css  js  c++  java
  • [svc]centos7的服务治理-systemd

    经常用到的高频命令小结

    - 所有服务unit放在这里
    ll /usr/lib/systemd/system
    
    - 默认启动级别
    [root@n1 ~]# ll /etc/systemd/system/default.target 
    lrwxrwxrwx 1 root root 41 Mar  4 09:02 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
    
    - 开机启动的服务
    ll /etc/systemd/system/multi-user.target.wants/
    
    - 哪些服务开机会启动
    [root@n1 ~]# systemctl list-unit-files --type service |grep enable
    autovt@.service                               enabled 
    crond.service                                 enabled 
    docker.service                                enabled 
    getty@.service                                enabled 
    ntpdate.service                               enabled 
    rsyslog.service                               enabled 
    sshd.service                                  enabled 
    sysstat.service                               enabled 
    
    - 目前哪些服务处于active状态
    [root@n1 ~]# systemctl list-units --type service |grep active
    crond.service                      loaded active running Command Scheduler
    dbus.service                       loaded active running D-Bus System Message Bus
    docker.service                     loaded active running Docker Application Container Engine
    getty@tty1.service                 loaded active running Getty on tty1
    
    - 查看某个服务是否开机自启
    systemctl is-enabled httpd.service 或
    systemctl status httpd.service
    

    systemd 有很多unit,其中service.unit是管理系统服务的.

    unit的类型

    /usr/lib/systemd/system
    

    查看管理系统服务的相关的, 即 .service后缀的

    [root@n1 system]# ls /usr/lib/systemd/system/*.service|more
    /usr/lib/systemd/system/arp-ethers.service
    /usr/lib/systemd/system/auditd.service
    /usr/lib/systemd/system/autovt@.service
    /usr/lib/systemd/system/blk-availability.service
    /usr/lib/systemd/system/brandbot.service
    ...
    
    特点:
        不需要可执行权限,其内容也不能执行
        仅是systemd的调用的配置文件
    
    unit类型 作用
    Service unit 管理系统服务,我们暂且只关心这个
    Target unit 多个Unit构成的一个组
    Device Unit 硬件设备
    Mount Unit 文件系统的挂载点
    Automount Unit 自动挂载点
    Path Unit 文件或路径
    Scope Unit 不是由 Systemd 启动的外部进程
    Slice Unit 进程组
    Snapshot Unit Systemd 快照,可以切回某个快照
    Socket Unit 进程间通信的 socket
    Swap Unit swap 文件
    Timer Unit 定时器

    centos6 chkconfig VS 使用systemd的service unit治理centos7服务

    任务 旧指令 新指令
    哪些服务正在跑? chkconfig --listgrep 3:on systemctl list-units --type=service
    哪些服务开机会自启动? chkconfig --list systemctl list-unit-files --type=service
    使httpd开机自启动 chkconfig --level 3 httpd on systemctl enable httpd.service
    使httd开机不自启动 chkconfig --level 3 httpd off systemctl disable httpd.service
    查看httpd现在是否启动着 service httpd status systemctl status httpd.service (服务详细信息)
    启动某服务 /etc/init.d/httpd start systemctl start httpd.service
    停止某服务 /etc/init.d/httpd stop systemctl stop httpd.service
    重启某服务 /etc/init.d/httpd restart systemctl restart httpd.service
    所有已装载的级别(而非当前级别) runlevel systemctl list-units --type target
    查看默认级别是啥 cat /etc/inittab systemctl get-default
    设置默认级别 init 3 systemctl set-default multi-user.target
    查看服务状态 /etc/init.d/http status systemctl is-enabled httpd.service/systemctl status httpd.service
    默认启动第一个进程 init systemd
    ls /usr/lib/systemd/system/*.service|more 下以service开头的文件,都是和系统服务有关的, 其下还有别的后缀的服务.是别的unit的配置文件.
    

    serivice unit配置

    target unit: 的含义是服务组,表示一组服务。

    将很多服务放在一坨, 开启启动时候加载这个文件.

    启动级别

    /usr/lib/systemd/system
    /etc/systemd/system
    
    runlevel0.target -> poweroff.target
    runlevel2.target -> multi-user.target
    runlevel3.target -> multi-user.target
    runlevel4.target -> multi-user.target
    runlevel5.target -> graphical.target
    runlevel6.target -> reboot.target
    

    注意: centos7里,运行级别234没区别.

    查看在运行的服务

    我们看ACTIVE就ok了,SUB这一列可以不用理会

    [root@n1 system]# systemctl list-units --type=service
    UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
    crond.service                      loaded active running Command Scheduler
    dbus.service                       loaded active running D-Bus System Message Bus
    docker.service                     loaded active running Docker Application Container Engine
    getty@tty1.service                 loaded active running Getty on tty1
    httpd.service                      loaded active running The Apache HTTP Server
    

    查看开机是否会启动

    [root@n1 system]# systemctl list-unit-files --type=service
    UNIT FILE                                     STATE   
    arp-ethers.service                            disabled
    auditd.service                                disabled
    autovt@.service                               enabled #开机会启动
    blk-availability.service                      disabled#开机不会启动
    brandbot.service                              static  #这类不用管
    conntrackd.service                            disabled
    
    

    systemd管理服务入门

    设置开机自动启动细节

    [root@n1 ~]# yum install psmisc -y
    [root@n1 ~]# pstree
    systemd─┬─agetty
            ├─crond
            ├─dbus-daemon
            ├─dockerd─┬─docker-containe─┬─docker-containe─┬─mysqld───20*[{mysqld}]
            │         │                 │                 └─8*[{docker-containe}]
            │         │                 └─9*[{docker-containe}]
            │         ├─docker-proxy───3*[{docker-proxy}]
            │         └─11*[{dockerd}]
            ├─httpd───8*[httpd]
            ├─lvmetad
            ├─polkitd───5*[{polkitd}]
            ├─rsyslogd───2*[{rsyslogd}]
            ├─sshd───sshd───bash───pstree
            ├─systemd-journal
            ├─systemd-logind
            └─systemd-udevd
    
    
    
    [root@n1 system]# systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    

    相当于执行

    ln -s /usr/lib/systemd/system/httpd.service /etc/systemd/system/multi-user.target.wants/httpd.service
    

    disable相当于删除

    [root@n1 system]# systemctl disable httpd
    Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
    
    [root@n1 system]# ll /etc/systemd/system/multi-user.target.wants
    total 0
    lrwxrwxrwx. 1 root root 37 Dec 27 04:44 crond.service -> /usr/lib/systemd/system/crond.service
    lrwxrwxrwx  1 root root 38 Dec 26 21:05 docker.service -> /usr/lib/systemd/system/docker.service
    lrwxrwxrwx  1 root root 37 Mar  4 03:39 httpd.service -> /usr/lib/systemd/system/httpd.service
    lrwxrwxrwx. 1 root root 39 Dec 26 21:00 ntpdate.service -> /usr/lib/systemd/system/ntpdate.service
    lrwxrwxrwx. 1 root root 40 Dec 27 04:44 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
    lrwxrwxrwx. 1 root root 39 Dec 27 04:44 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
    lrwxrwxrwx. 1 root root 36 Dec 27 04:44 sshd.service -> /usr/lib/systemd/system/sshd.service
    lrwxrwxrwx. 1 root root 39 Dec 27 05:00 sysstat.service -> /usr/lib/systemd/system/sysstat.service
    

    设置启动级别的命令

    - 设置默认启动级别
    [root@n1 ~]# systemctl set-default graphical.target 
    Removed symlink /etc/systemd/system/default.target.
    Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
    
    - 查看默认的启动级别
    [root@n1 ~]# systemctl get-default 
    graphical.target
    
    - 手动修改启动级别(先将原来的rm了)
    [root@n1 ~]# ln -sv /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
    ln: failed to create symbolic link ‘/etc/systemd/system/default.target’: File exists
    [root@n1 ~]# rm -rf /etc/systemd/system/default.target
    [root@n1 ~]# ln -sv /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
    ‘/etc/systemd/system/default.target’ -> ‘/usr/lib/systemd/system/multi-user.target’
    [root@n1 ~]# systemctl get-default 
    multi-user.target
    
    - 查看服务状态
    [root@n1 ~]# systemctl is-enabled httpd.service 
    disabled
    
  • 相关阅读:
    css 中 overflow: hidden清楚浮动的真正原因
    Get、Post请求中文乱码问题有效解决方法
    安装PostgreSQL和卸载PostgreSQL
    PostgresSql日期字段比较大小
    关于多线程编程的一点思考
    Python 虚拟环境 pyenv、venv(pyvenv)、virtualenv之间的区别
    python常用命令
    python中各种文件打开模式a w r
    python-安装
    day1-安装配置
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8503665.html
Copyright © 2011-2022 走看看