精华内容
下载资源
问答
  • Linux下systemctl命令和service、chkconfig命令的区别

    万次阅读 多人点赞 2018-10-16 13:20:36
    title: Linux下systemctl命令和service、chkconfig命令的区别 date: 2018-10-15 20:00:10 tags: [Linux笔记,Linux命令] categories: Linux systemctl和service、chkconfig命令的关系 systemctl命令:...

    Systemctl和service、chkconfig命令的关系

    • systemctl命令:是一个systemd工具,主要负责控制systemd系统和服务管理器。
    • service命令:可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
    • chkconfig命令:是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。

    systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

    systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。

    所以systemctl命令是service命令和chkconfig命令的集合和代替。

    例如:使用service启动服务实际上也是调用systemctl命令。

    [root@localhost ~]# service httpd start
    Redirecting to /bin/systemctl start  httpd.service
    

    systemctl命令的用法

    Systemctl命令简介:

    Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

    Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。

    systemd即为system daemon,是linux下的一种init软件。

    Systemctl命令常见用法:

    (1)列出所有可用单元:

    [root@localhost ~]# 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 
    

    (2)列出所有可用单元:

    [root@localhost ~]# systemctl list-units
      UNIT                      LOAD      ACTIVE SUB       DESCRIPTION
      proc-sys-fs-binfmt_misc.automount loaded    active waiting   Arbitrary 
      sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda
      sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda
      sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda
      sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:1-2:0:1:0-block-sdb
      sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:1-2:0:1:0-block-sdb
      sys-devices-pci0000:00-0000:00:11.0-0000:02:01.0-net-ens33.device loade
      sys-devices-pci0000:00-0000:00:11.0-0000:02:02.0-sound-card0.device lo
     ..............
    

    (3)列出所有失败单元:

    [root@localhost ~]# systemctl --failed 
      UNIT                LOAD   ACTIVE SUB    DESCRIPTION
    ● network.service     loaded failed failed LSB: Bring up/down networking
    ● teamd@team0.service loaded failed failed Team Daemon for device team0
    
    LOAD   = Reflects whether the unit definition was properly loaded.
    ACTIVE = The high-level unit activation state, i.e. generalization of SUB
    SUB    = The low-level unit activation state, values depend on unit type.
    
    2 loaded units listed. Pass --all to see loaded but inactive units, too.
    To show all installed unit files use 'systemctl list-unit-files'.
    

    (4)检查某个单元是否启动:

    [root@localhost ~]# systemctl is-enabled httpd.service 
    enabled
    

    (5)检查某个服务的运行状态:

    [root@localhost ~]# systemctl status httpd.service     
    ● httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
       Active: active (running) since 日 2018-10-14 18:21:46 CST; 1 day 2h ago
         Docs: man:httpd(8)
               man:apachectl(8)
     Main PID: 19020 (httpd)
       Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
       CGroup: /system.slice/httpd.service
               ├─19020 /usr/sbin/httpd -DFOREGROUND
               ├─27310 /usr/sbin/httpd -DFOREGROUND
               ├─27311 /usr/sbin/httpd -DFOREGROUND
               ├─27312 /usr/sbin/httpd -DFOREGROUND
               ├─27313 /usr/sbin/httpd -DFOREGROUND
               └─27314 /usr/sbin/httpd -DFOREGROUND
    
    10月 14 18:21:46 localhost systemd[1]: Starting The Apache HTTP Serv....
    10月 14 18:21:46 localhost httpd[19020]: AH00558: httpd: Could not r...e
    

    (6)列出所有服务:

    [root@localhost ~]# systemctl list-unit-files --type=service
    UNIT FILE                                  STATE   
    abrt-ccpp.service                          enabled 
    abrt-oops.service                          enabled 
    abrt-pstoreoops.service                    disabled
    abrt-xorg.service                          enabled 
    abrtd.service                              enabled 
    accounts-daemon.service                    enabled 
    alsa-restore.service                       static  
    alsa-state.service                         static  
    alsa-store.service                         static  
    arp-ethers.service                         disabled
    atd.service                                disabled
    auditd.service                             enabled 
    auth-rpcgss-module.service                 static  

    (7)启动,停止,重启服务等:

    [root@localhost ~]# systemctl restart httpd.service
    # systemctl restart httpd.service
    # systemctl stop httpd.service
    # systemctl reload httpd.service
    # systemctl status httpd.service
    

    (8)查询服务是否激活,和配置是否开机启动:

    [root@localhost ~]# systemctl is-active httpd
    active
    [root@localhost ~]# systemctl disable httpd
    Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
    [root@localhost ~]# systemctl enable httpd 
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    

    (9)使用systemctl命令杀死服务:

    [root@localhost ~]# systemctl kill httpd
    

    (10)列出系统的各项服务,挂载,设备等:

    [root@localhost ~]# systemctl list-unit-files --type 
    automount  device     path       snapshot   swap       timer
    busname    mount      service    socket     target  

    (11)获得系统默认启动级别和设置默认启动级别:

    [root@localhost ~]# systemctl get-default 
    graphical.target
    [root@localhost ~]# systemctl set-default multi-user.target 
    

    (12)启动运行等级:

     systemctl isolate multiuser.target
    

    (13)重启、停止,挂起、休眠系统等:

    # systemctl reboot
    # systemctl halt
    # systemctl suspend
    # systemctl hibernate
    # systemctl hybrid-sleep
    

    Service命令用法

    service命令可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

    service命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。

    使用示例:

    开启关闭一个服务:service httpd start/stop

    [root@localhost ~]# service httpd start
    Redirecting to /bin/systemctl start  httpd.service
    

    查看系统服务的状态:service --status-all

    [root@localhost ~]# service --status-all
    未加载 netconsole 模块
    已配置设备:
    lo ens33 ens33.old team0 team0-port1 team0-port1.old team0-port2 team0-port2.old team0.old
    当前活跃设备:
    lo ens33 virbr0 ens38 ens39 team0
    ● rhnsd.service - LSB: Starts the Spacewalk Daemon
       Loaded: loaded (/etc/rc.d/init.d/rhnsd; bad; vendor preset: disabled)
       Active: active (running) since 五 2018-10-12 14:53:19 CST; 3 days ago
         Docs: man:systemd-sysv-generator(8)
     Main PID: 1380 (rhnsd)
       CGroup: /system.slice/rhnsd.service
               └─1380 rhnsd
    
    

    chkconfig命令用法

    chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。

    chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。

    chkconfig常见用法:

    [root@localhost ~]# chkconfig  --help
    chkconfig 版本 1.7.2 - 版权 (C) 1997-2000 红帽公司
    在 GNU 公共许可条款下,本软件可以自由重发行。
    
    用法:   chkconfig [--list] [--type <类型>] [名称]
             chkconfig --add <名称>
             chkconfig --del <名称>
             chkconfig --override <名称>
             chkconfig [--level <级别>] [--type <类型>] <名称> <on|off|reset|resetpriorities>
    

    (一)设置service开机是否启动:

     chkconfig name on/off/reset
    
    • on、off、reset用于改变service的启动信息。
    • on表示开启,off表示关闭,reset表示重置。
    • 默认情况下,on和off开关只对运行级2,3,4,5有效,reset可以对所有运行级有效。
    [root@localhost ~]# chkconfig httpd on
    注意:正在将请求转发到“systemctl enable httpd.service”。
    

    在Redhat7上,运行chkconfig命令,都会被转到systemcle命令上。

    (2)设置service运行级别:

     chkconfig --level levels
    

    该命令可以用来指定服务的运行级别,即指定运行级别2,3,4,5等。

    • 等级0表示:表示关机
    • 等级1表示:单用户模式
    • 等级2表示:无网络连接的多用户命令行模式
    • 等级3表示:有网络连接的多用户命令行模式
    • 等级4表示:不可用
    • 等级5表示:带图形界面的多用户模式
    • 等级6表示:重新启动

    例如:

    [root@localhost ~]# chkconfig --level 5 httpd on
    注意:正在将请求转发到“systemctl enable httpd.service”
    

    (三)列出service启动信息:

    # chkconfig --list [name]
    

    如果不指定name,会列出所有services的信息。

    每个service每个运行级别都会有一个启动和停止脚本;当切换运行级别时,init不会重启已经启动的service,也不会重新停止已经停止的service。

    例如:

    [root@localhost ~]# chkconfig --list
    
    注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
          如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
          欲查看对特定 target 启用的服务请执行
          'systemctl list-dependencies [target]'。
    
    netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
    network         0:关    1:关    2:开    3:开    4:开    5:开    6:关
    rhnsd           0:关    1:关    2:开    3:开    4:开    5:开    6:关
    

    **总结:**service命令的功能基本都被systemct取代。直接使用systemctl命令即可。

    展开全文
  • systemctl enable httpd.service #禁止开机启动 systemctl disable httpd.service #查看服务状态 systemctl status httpd.service #开启服务 systemctl start httpd.service #关闭服务 systemctl stop httpd...
    #设置开机启动
    systemctl enable httpd.service

    #禁止开机启动
    systemctl disable httpd.service
    

    #查看服务状态
    systemctl status httpd.service 
    

    #开启服务
    systemctl start httpd.service
    

    #关闭服务
    systemctl stop httpd.service
    
    

    #重启服务
    systemctl restart httpd.service
    
    


    原文地址: http://man.linuxde.net/systemctl

    展开全文
  • linux systemctl命令详解

    2020-09-15 05:03:11
    主要介绍了linux systemctl命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • systemctl命令是系统服务管理器指令,它实际上将 service和chkconfig这两个命令组合到一起。 Centos7之后从init完全换成了systemd的启动方式,systemd 启动服务的机制主要是通过 systemctl 的这个系统服务管理指令...

    00. 目录

    01. 命令概述

    systemctl命令是系统服务管理器指令,它实际上将 servicechkconfig这两个命令组合到一起。

    Centos7之后从init完全换成了systemd的启动方式,systemd 启动服务的机制主要是通过 systemctl 的这个系统服务管理指令来处理。systemctl在用法上也囊括 service / chkconfig / setup / init 的大部分功能。

    任务 旧指令 新指令
    使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
    使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
    检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) systemctl is-enabled httpd.service (仅显示是否 Active)
    显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
    启动某服务 service httpd start systemctl start httpd.service
    停止某服务 service httpd stop systemctl stop httpd.service
    重启某服务 service httpd restart systemctl restart httpd.service
    某服务重新加载配置文件 service httpd reload systemctl reload httpd.service

    02. 命令格式

    格式:systemctl [选项...] {命令} ...
    

    03. 常用选项

    -start	启动服务
    -stop	停止服务
    -restart	重启服务
    -enable	使某服务开机自启
    -disable	关闭某服务开机自启
    -status	查看服务状态
    -list-units –type=service	列举所有已启动服务
    

    04. 参考示例

    4.1 输出所有已经启动服务

    [deng@localhost ~]$ systemctl 
    

    4.2 输出所有已经启动的单元

    [deng@localhost ~]$ systemctl list-units
    

    4.3 显示启动失败的服务

    [deng@localhost ~]$ systemctl --failed
      UNIT            LOAD   ACTIVE SUB    DESCRIPTION
    ● network.service loaded failed failed LSB: Bring up/down networking
    ● postfix.service loaded failed failed Postfix Mail Transport Agent
    

    4.4 查看所有已经安装的服务

    [deng@localhost ~]$ 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  
    

    4.5 启动服务

    [root@localhost ~]# systemctl start sshd
    

    4.6 停止服务

    [root@localhost ~]# systemctl stop sshd
    

    4.7 重启服务

    [root@localhost ~]# systemctl restart sshd
    

    4.8 重新加载服务配置

    [root@localhost ~]# systemctl reload sshd
    

    4.9 查看服务状态

    [root@localhost ~]# systemctl status sshd
    ● sshd.service - OpenSSH server daemon
       Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
       Active: active (running) since 六 2019-08-17 20:56:41 CST; 1min 10s ago
    

    4.10 查看服务是否开机启动

    [root@localhost ~]# systemctl is-enabled sshd
    enabled
    [root@localhost ~]# 
    

    4.11 开机自动启动服务

    [root@localhost ~]# systemctl enable sshd
    [root@localhost ~]# 
    

    4.12 开机不启动服务

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

    4.13 显示服务帮助信息

    [root@localhost ~]# systemctl help sshd
    

    4.14 重新加载systemd

    [root@localhost ~]# systemctl daemon-reload
    

    4.15 重新启动系统

    [root@localhost ~]# systemctl reboot
    

    4.16 关机

    [root@localhost ~]# systemctl poweroff 
    

    4.17 休眠

    [root@localhost ~]# systemctl hibernate 
    

    hibernate:休眠模式则是将系统状态保存到硬盘当中,保存完毕后,将计算机关机。当用户尝试唤醒系统时,系统会开始正常运行,然后将保存在硬盘中的系统状态恢复回来。因为数据需要从硬盘读取,因此唤醒的速度比较慢(如果你使用的是 SSD 磁盘,唤醒的速度也是非常快的)。

    4.18 待机

    [root@localhost ~]# systemctl suspend 
    

    suspend:暂停模式会将系统的状态保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机。当用户按下唤醒机器的按钮,系统数据会从内存中回复,然后重新驱动被大部分关闭的硬件,所以唤醒系统的速度比较快。

    4.19 混合休眠模式(同时休眠到硬盘并待机)

    [root@localhost ~]# systemctl hybrid-sleep 
    

    4.20 相当于telinit 3 或 telinit 5

    [root@localhost ~]# systemctl isolate graphical.target 
    

    graphical.target:就是文字界面再加上图形界面,这个 target 已经包含了下面的 multi-user.target。

    multi-user.target:纯文本模式!

    rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的临时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。

    emergency.target:紧急处理系统的错误,在无法使用 rescue.target 时,可以尝试使用这种模式!

    shutdown.target:就是执行关机。

    getty.target:可以设置 tty 的配置。

    正常的模式是 multi-user.target 和 graphical.target 两个,救援方面的模式主要是 rescue.target 以及更严重的 emergency.target。如果要修改可提供登陆的 tty 数量,则修改 getty.target。

    4.21 列出所有已经启动的服务

    [root@localhost ~]# systemctl list-units --type=service
    

    4.22 查看目前是否运行指定服务

    [root@localhost ~]# systemctl is-active sshd
    active
    [root@localhost ~]# 
    

    4.23 列出unit的配置

    [root@localhost ~]# systemctl show
    

    4.24 查看服务的配置

    [root@localhost ~]# systemctl show sshd.service 
    

    4.25 注销服务

    [root@localhost ~]# systemctl mask sshd.service 
    Created symlink from /etc/systemd/system/sshd.service to /dev/null.
    [root@localhost ~]# 
    

    4.26 反注销服务

    [root@localhost ~]# systemctl unmask sshd.service 
    Removed symlink /etc/systemd/system/sshd.service.
    [root@localhost ~]# 
    

    4.27 只查看服务类型的unit

    [root@localhost ~]# systemctl list-units  --type=service --all
      UNIT                         LOAD      ACTIVE   SUB     DESCRIPTION
      abrt-ccpp.service            loaded    active   exited  Install ABRT coredump hoo
      abrt-oops.service            loaded    active   running ABRT kernel log watcher
      abrt-vmcore.service          loaded    inactive dead    Harvest vmcores for ABRT
      abrt-xorg.service            loaded    active   running ABRT Xorg log watcher
      abrtd.service                loaded    active   running ABRT Automated Bug Report
      accounts-daemon.service      loaded    active   running Accounts Service
      alsa-restore.service         loaded    inactive dead    Save/Restore Sound Card S
      alsa-state.service           loaded    active   running Manage Sound Card State (
    ● apparmor.service             not-found inactive dead    apparmor.service
    

    4.28 进入救援模式

    [root@localhost ~]# systemctl rescue 
    

    4.29 进入紧急救援模式

    [root@localhost ~]# systemctl emergency 
    

    4.30 本机 socket 的服务

    [root@localhost ~]# systemctl list-sockets 
    

    05. 附录

    参考:【Linux】一步一步学Linux系列教程汇总

    参考:https://blog.csdn.net/skh2015java/article/details/94012643

    展开全文
  • Linux-systemctl命令

    千次阅读 2016-06-13 15:07:04
    简介我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体。格式systemctl is-enabled iptables.service #查询服务是否开机启动 systemctl enable ...

    简介

    我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体。

    格式

    systemctl is-enabled iptables.service #查询服务是否开机启动
    systemctl enable *.service #开机运行服务
    systemctl disable *.service #取消开机运行
    systemctl start *.service #启动服务
    systemctl stop *.service #停止服务
    systemctl restart *.service #重启服务
    systemctl reload *.service #重新加载服务配置文件
    systemctl status *.service #查询服务运行状态
    systemctl --failed #显示启动失败的服务
    systemctl list-unit-files --type=service #列出所有服务(包括启用的和禁用的)
    systemctl mask *.service #屏蔽(让它不能启动)
    systemctl unmask *.service #显示服务

    注:*代表某个服务的名字,如http的服务名为httpd


    以下是转载http://www.linuxdiyf.com/linux/13088.html

    Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
    Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
    在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。
    使用
    Systemctl管理Linux服务
    本文旨在阐明在运行systemd的系统上“如何控制系统和服务”。

    Systemd初体验和Systemctl基础

    1. 首先检查你的系统中是否安装有systemd并确定当前安装的版本

    systemd –version

    systemd 215
    +PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR
    上例中很清楚地表明,我们安装了215版本的systemd。

    1. 检查systemd和systemctl的二进制文件和库文件的安装位置

    whereis systemd

    systemd:/usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz

    whereis systemctl

    systemctl:/usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz

    1. 检查systemd是否运行

    ps -eaf | grep [s]ystemd

    root 10016:27?00:00:00/usr/lib/systemd/systemd –switched-root –system –deserialize 23
    root 4441016:27?00:00:00/usr/lib/systemd/systemd-journald
    root 4691016:27?00:00:00/usr/lib/systemd/systemd-udevd
    root 5551016:27?00:00:00/usr/lib/systemd/systemd-logind
    dbus 5561016:27?00:00:00/bin/dbus-daemon –system –address=systemd:–nofork –nopidfile –systemd-activation
    注意:systemd是作为父进程(PID=1)运行的。在上面带(-e)参数的ps命令输出中,选择所有进程,(-a)选择除会话前导外的所有进程,并使用(-f)参数输出完整格式列表(即 -eaf)。
    也请注意上例中后随的方括号和例子中剩余部分。方括号表达式是grep的字符类表达式的一部分。

    1. 分析systemd启动进程

    systemd-analyze

    Startup finished in487ms(kernel)+2.776s(initrd)+20.229s(userspace)=23.493s

    1. 分析启动时各个进程花费的时间

    systemd-analyze blame

    8.565s mariadb.service
    7.991s webmin.service
    6.095s postfix.service
    4.311s httpd.service
    3.926s firewalld.service
    3.780s kdump.service
    3.238s tuned.service
    1.712s network.service
    1.394s lvm2-monitor.service
    1.126s systemd-logind.service
    ….

    1. 分析启动时的关键链

    systemd-analyze critical-chain

    The time after the unit is active or started is printed after the “@” character.
    The time the unit takes to start is printed after the “+” character.
    multi-user.target @20.222s
    └─mariadb.service @11.657s+8.565s
    └─network.target @11.168s
    └─network.service @9.456s+1.712s
    └─NetworkManager.service @8.858s+596ms
    └─firewalld.service @4.931s+3.926s
    └─basic.target @4.916s
    └─sockets.target @4.916s
    └─dbus.socket @4.916s
    └─sysinit.target @4.905s
    └─systemd-update-utmp.service @4.864s+39ms
    └─auditd.service @4.563s+301ms
    └─systemd-tmpfiles-setup.service @4.485s+69ms
    └─rhel-import-state.service @4.342s+142ms
    └─local-fs.target @4.324s
    └─boot.mount @4.286s+31ms
    └─systemd-fsck@dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d19608096
    └─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device@4
    重要:Systemctl接受服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。

    1. 列出所有可用单元

    systemctl list-unit-files

    UNIT FILE STATE
    proc-sys-fs-binfmt_misc.automount static
    dev-hugepages.mount static
    dev-mqueue.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
    brandbot.path disabled
    …..

    1. 列出所有运行中单元

    systemctl list-units

    UNIT LOAD ACTIVE SUB DESCRIPTION
    proc-sys-fs-binfmt_misc.automount loaded active waiting ArbitraryExecutableFileFormatsFileSyste
    sys-devices-pc…0-1:0:0:0-block-sr0.device loaded active plugged VBOX_CD-ROM
    sys-devices-pc…:00:03.0-net-enp0s3.device loaded active plugged PRO/1000 MT DesktopAdapter
    sys-devices-pc…00:05.0-sound-card0.device loaded active plugged 82801AA AC’97 Audio Controller
    sys-devices-pc…:0:0-block-sda-sda1.device loaded active plugged VBOX_HARDDISK
    sys-devices-pc…:0:0-block-sda-sda2.device loaded active plugged LVM PV Qzyo3l-qYaL-uRUa-Cjuk-pljo-qKtX-VgBQ8
    sys-devices-pc…0-2:0:0:0-block-sda.device loaded active plugged VBOX_HARDDISK
    sys-devices-pl…erial8250-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS0
    sys-devices-pl…erial8250-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS1
    sys-devices-pl…erial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2
    sys-devices-pl…erial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3
    sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtual/block/dm-0
    sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtual/block/dm-1
    sys-module-configfs.device loaded active plugged /sys/module/configfs

    1. 列出所有失败单元

    systemctl –failed

    UNIT LOAD ACTIVE SUB DESCRIPTION
    kdump.service loaded failed failed Crash recovery kernel arming
    LOAD =Reflects whether the unit definition was properly loaded.
    ACTIVE =The high-level unit activation state, i.e. generalization of SUB.
    SUB =The low-level unit activation state, values depend on unit type.
    1 loaded units listed.Pass–all to see loaded but inactive units, too.
    To show all installed unit files use’systemctl list-unit-files’.

    1. 检查某个单元(如 cron.service)是否启用

    systemctl is-enabled crond.service

    enabled

    1. 检查某个单元或服务是否运行

    systemctl status firewalld.service

    firewalld.service - firewalld -dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
    Active: active (running) since Tue2015-04-2816:27:55 IST;34min ago
    Main PID:549(firewalld)
    CGroup:/system.slice/firewalld.service
    └─549/usr/bin/python -Es/usr/sbin/firewalld –nofork –nopid
    Apr2816:27:51 tecmint systemd[1]:Starting firewalld -dynamic firewall daemon…
    Apr2816:27:55 tecmint systemd[1]:Started firewalld -dynamic firewall daemon.

    使用Systemctl控制并管理服务

    1. 列出所有服务(包括启用的和禁用的)

    systemctl list-unit-files –type=service

    UNIT FILE STATE
    arp-ethers.service disabled
    auditd.service enabled
    autovt@.service disabled
    blk-availability.service disabled
    brandbot.service static
    collectd.service disabled
    console-getty.service disabled
    console-shell.service disabled
    cpupower.service disabled
    crond.service enabled
    dbus-org.Fedoraproject.FirewallD1.service enabled
    ….

    1. Linux中如何启动、重启、停止、重载服务以及检查服务(如 httpd.service)状态

    systemctl start httpd.service

    systemctl restart httpd.service

    systemctl stop httpd.service

    systemctl reload httpd.service

    systemctl status httpd.service

    httpd.service -TheApache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
    Active: active (running) since Tue2015-04-2817:21:30 IST;6s ago
    Process:2876ExecStop=/bin/kill -WINCH ${MAINPID}(code=exited, status=0/SUCCESS)
    Main PID:2881(httpd)
    Status:”Processing requests…”
    CGroup:/system.slice/httpd.service
    ├─2881/usr/sbin/httpd -DFOREGROUND
    ├─2884/usr/sbin/httpd -DFOREGROUND
    ├─2885/usr/sbin/httpd -DFOREGROUND
    ├─2886/usr/sbin/httpd -DFOREGROUND
    ├─2887/usr/sbin/httpd -DFOREGROUND
    └─2888/usr/sbin/httpd -DFOREGROUND
    Apr2817:21:30 tecmint systemd[1]:StartingTheApache HTTP Server…
    Apr2817:21:30 tecmint httpd[2881]: AH00558: httpd:Couldnot reliably determine the server’s fully q…ssage
    Apr 28 17:21:30 tecmint systemd[1]: Started The Apache HTTP Server.
    Hint: Some lines were ellipsized, use -l to show in full.
    注意:当我们使用systemctl的start,restart,stop和reload命令时,我们不会从终端获取到任何输出内容,只有status命令可以打印输出。

    1. 如何激活服务并在启动时启用或禁用服务(即系统启动时自动启动服务)

    systemctl is-active httpd.service

    systemctl enable httpd.service

    systemctl disable httpd.service

    1. 如何屏蔽(让它不能启动)或显示服务(如 httpd.service)

    systemctl mask httpd.service

    ln -s ‘/dev/null”/etc/systemd/system/httpd.service’

    systemctl unmask httpd.service

    rm ‘/etc/systemd/system/httpd.service’

    1. 使用systemctl命令杀死服务

    systemctl kill httpd

    systemctl status httpd

    httpd.service -TheApache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
    Active: failed (Result:exit-code) since Tue2015-04-2818:01:42 IST;28min ago
    Main PID:2881(code=exited, status=0/SUCCESS)
    Status:”Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”
    Apr2817:37:29 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:29 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:39 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:39 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:49 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:49 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:59 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2817:37:59 tecmint systemd[1]: httpd.service:Got notification message from PID 2881, but recepti…bled.
    Apr2818:01:42 tecmint systemd[1]: httpd.service: control process exited, code=exited status=226
    Apr2818:01:42 tecmint systemd[1]:Unit httpd.service entered failed state.
    Hint:Some lines were ellipsized,use-l to show in full.

    使用Systemctl控制并管理挂载点

    1. 列出所有系统挂载点

    systemctl list-unit-files –type=mount

    UNIT FILE STATE
    dev-hugepages.mount static
    dev-mqueue.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

    1. 挂载、卸载、重新挂载、重载系统挂载点并检查系统中挂载点状态

    systemctl start tmp.mount

    systemctl stop tmp.mount

    systemctl restart tmp.mount

    systemctl reload tmp.mount

    systemctl status tmp.mount

    tmp.mount -TemporaryDirectory
    Loaded: loaded (/usr/lib/systemd/system/tmp.mount; disabled)
    Active: active (mounted) since Tue2015-04-2817:46:06 IST;2min48s ago
    Where:/tmp
    What: tmpfs
    Docs: man:hier(7)
    http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
    Process:3908ExecMount=/bin/mount tmpfs /tmp -t tmpfs -o mode=1777,strictatime (code=exited, status=0/SUCCESS)
    Apr2817:46:06 tecmint systemd[1]:MountingTemporaryDirectory…
    Apr2817:46:06 tecmint systemd[1]: tmp.mount:Directory/tmp to mount over isnot empty, mounting anyway.
    Apr2817:46:06 tecmint systemd[1]:MountedTemporaryDirectory.

    1. 在启动时激活、启用或禁用挂载点(系统启动时自动挂载)

    systemctl is-active tmp.mount

    systemctl enable tmp.mount

    systemctl disable tmp.mount

    1. 在Linux中屏蔽(让它不能启用)或可见挂载点

    systemctl mask tmp.mount

    ln -s ‘/dev/null”/etc/systemd/system/tmp.mount’

    systemctl unmask tmp.mount

    rm ‘/etc/systemd/system/tmp.mount’

    使用Systemctl控制并管理套接口

    1. 列出所有可用系统套接口

    systemctl list-unit-files –type=socket

    UNIT FILE STATE
    dbus.socket static
    dm-event.socket enabled
    lvm2-lvmetad.socket enabled
    rsyncd.socket disabled
    sshd.socket disabled
    syslog.socket static
    systemd-initctl.socket static
    systemd-journald.socket static
    systemd-shutdownd.socket static
    systemd-udevd-control.socket static
    systemd-udevd-kernel.socket static
    11 unit files listed.

    1. 在Linux中启动、重启、停止、重载套接口并检查其状态

    systemctl start cups.socket

    systemctl restart cups.socket

    systemctl stop cups.socket

    systemctl reload cups.socket

    systemctl status cups.socket

    cups.socket - CUPS PrintingServiceSockets
    Loaded: loaded (/usr/lib/systemd/system/cups.socket; enabled)
    Active: active (listening) since Tue2015-04-2818:10:59 IST;8s ago
    Listen:/var/run/cups/cups.sock (Stream)
    Apr2818:10:59 tecmint systemd[1]:Starting CUPS PrintingServiceSockets.
    Apr2818:10:59 tecmint systemd[1]:Listening on CUPS PrintingServiceSockets.

    1. 在启动时激活套接口,并启用或禁用它(系统启动时自启动)

    systemctl is-active cups.socket

    systemctl enable cups.socket

    systemctl disable cups.socket

    1. 屏蔽(使它不能启动)或显示套接口

    systemctl mask cups.socket

    ln -s ‘/dev/null”/etc/systemd/system/cups.socket’

    systemctl unmask cups.socket

    rm ‘/etc/systemd/system/cups.socket’

    服务的CPU利用率(分配额)

    1. 获取当前某个服务的CPU分配额(如httpd)

    systemctl show -p CPUShares httpd.service

    CPUShares=1024
    注意:各个服务的默认CPU分配份额=1024,你可以增加/减少某个进程的CPU分配份额。

    1. 将某个服务(httpd.service)的CPU分配份额限制为2000 CPUShares/

    systemctl set-property httpd.service CPUShares=2000

    systemctl show -p CPUShares httpd.service

    CPUShares=2000
    注意:当你为某个服务设置CPUShares,会自动创建一个以服务名命名的目录(如 httpd.service),里面包含了一个名为90-CPUShares.conf的文件,该文件含有CPUShare限制信息,你可以通过以下方式查看该文件:

    vi /etc/systemd/system/httpd.service.d/90-CPUShares.conf

    [Service]
    CPUShares=2000

    1. 检查某个服务的所有配置细节

    systemctl show httpd

    Id=httpd.service
    Names=httpd.service
    Requires=basic.target
    Wants=system.slice
    WantedBy=multi-user.target
    Conflicts=shutdown.target
    Before=shutdown.target multi-user.target
    After=network.target remote-fs.target nss-lookup.target systemd-journald.socket basic.target system.slice
    Description=TheApache HTTP Server
    LoadState=loaded
    ActiveState=active
    SubState=running
    FragmentPath=/usr/lib/systemd/system/httpd.service
    ….

    1. 分析某个服务(httpd)的关键链

    systemd-analyze critical-chain httpd.service

    The time after the unit is active or started is printed after the “@” character.
    The time the unit takes to start is printed after the “+” character.
    httpd.service +142ms
    └─network.target @11.168s
    └─network.service @9.456s+1.712s
    └─NetworkManager.service @8.858s+596ms
    └─firewalld.service @4.931s+3.926s
    └─basic.target @4.916s
    └─sockets.target @4.916s
    └─dbus.socket @4.916s
    └─sysinit.target @4.905s
    └─systemd-update-utmp.service @4.864s+39ms
    └─auditd.service @4.563s+301ms
    └─systemd-tmpfiles-setup.service @4.485s+69ms
    └─rhel-import-state.service @4.342s+142ms
    └─local-fs.target @4.324s
    └─boot.mount @4.286s+31ms
    └─systemd-fsck@dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.service@4.092s+149ms
    └─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device@4.092s

    1. 获取某个服务(httpd)的依赖性列表

    systemctl list-dependencies httpd.service

    httpd.service
    ├─system.slice
    └─basic.target
    ├─firewalld.service
    ├─microcode.service
    ├─rhel-autorelabel-mark.service
    ├─rhel-autorelabel.service
    ├─rhel-configure.service
    ├─rhel-dmesg.service
    ├─rhel-loadmodules.service
    ├─paths.target
    ├─slices.target
    │├─-.slice
    │└─system.slice
    ├─sockets.target
    │├─dbus.socket
    ….

    1. 按等级列出控制组

    systemd-cgls

    ├─1/usr/lib/systemd/systemd –switched-root –system –deserialize 23
    ├─user.slice
    │└─user-0.slice
    │└─session-1.scope
    │├─2498 sshd: root@pts/0
    │├─2500-bash
    │├─4521 systemd-cgls
    │└─4522 systemd-cgls
    └─system.slice
    ├─httpd.service
    │├─4440/usr/sbin/httpd -DFOREGROUND
    │├─4442/usr/sbin/httpd -DFOREGROUND
    │├─4443/usr/sbin/httpd -DFOREGROUND
    │├─4444/usr/sbin/httpd -DFOREGROUND
    │├─4445/usr/sbin/httpd -DFOREGROUND
    │└─4446/usr/sbin/httpd -DFOREGROUND
    ├─polkit.service
    │└─721/usr/lib/polkit-1/polkitd –no-debug
    ….

    1. 按CPU、内存、输入和输出列出控制组

    systemd-cgtop

    PathTasks%CPU MemoryInput/s Output/s
    /831.0437.8M–
    /system.slice -0.1—
    /system.slice/mariadb.service 20.1—
    /system.slice/tuned.service 10.0—
    /system.slice/httpd.service 60.0—
    /system.slice/NetworkManager.service 1—-
    /system.slice/atop.service 1—-
    /system.slice/atopacct.service 1—-
    /system.slice/auditd.service 1—-
    /system.slice/crond.service 1—-
    /system.slice/dbus.service 1—-
    /system.slice/firewalld.service 1—-
    /system.slice/lvm2-lvmetad.service 1—-
    /system.slice/polkit.service 1—-
    /system.slice/postfix.service 3—-
    /system.slice/rsyslog.service 1—-
    /system.slice/system-getty.slice/getty@tty1.service 1—-
    /system.slice/systemd-journald.service 1—-
    /system.slice/systemd-logind.service 1—-
    /system.slice/systemd-udevd.service 1—-
    /system.slice/webmin.service 1—-
    /user.slice/user-0.slice/session-1.scope3—-

    控制系统运行等级

    1. 启动系统救援模式

    systemctl rescue

    Broadcast message from root@tecmint on pts/0(Wed2015-04-2911:31:18 IST):
    The system is going down to rescue mode NOW!

    1. 进入紧急模式

    systemctl emergency

    Welcome to emergency mode!After logging in, type “journalctl -xb” to view
    system logs,”systemctl reboot” to reboot,”systemctl default” to try again
    to boot intodefault mode.

    1. 列出当前使用的运行等级

    systemctl get-default

    multi-user.target

    1. 启动运行等级5,即图形模式

    systemctl isolate runlevel5.target

    systemctl isolate graphical.target

    1. 启动运行等级3,即多用户模式(命令行)

    systemctl isolate runlevel3.target

    systemctl isolate multiuser.target

    1. 设置多用户模式或图形模式为默认运行等级

    systemctl set-default runlevel3.target

    systemctl set-default runlevel5.target

    1. 重启、停止、挂起、休眠系统或使系统进入混合睡眠

    systemctl reboot

    systemctl halt

    systemctl suspend

    systemctl hibernate

    systemctl hybrid-sleep

    对于不知运行等级为何物的人,说明如下。
    Runlevel 0 : 关闭系统
    Runlevel 1 : 救援?维护模式
    Runlevel 3 : 多用户,无图形系统
    Runlevel 4 : 多用户,无图形系统
    Runlevel 5 : 多用户,图形化系统
    Runlevel 6 : 关闭并重启机器

    到此为止吧。保持连线,进行评论。别忘了在下面的评论中为我们提供一些有价值的反馈哦。喜欢我们、与我们分享,求扩散。

    展开全文
  • systemctl systemctl 输出已激活单元 systemctl list-units 输出已激活单元 systemctl --failed 输出运行失败的单元 systemctl list-unit-files 查看所有已安装服务 systemctl daemon-reload 重新载入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,603
精华内容 49,441
关键字:

linux下systemctl命令

linux 订阅