• systemd学习及使用


    什么是systemd?

    (译)systemd是linux系统的一组基础构件块。它提供了一个系统和服务的管理,它以PID 1 的形式运行并启动系统的其余部分。systemd 使用积极的并行化功能,使用socket和D-bus激活启动服务,并提供一个按需启动守护进程,使用linux控制组来跟踪进程,维护挂载和自动挂载点,实现了一个复杂的基于事务依赖性的服务控制逻辑。systemd支持SysV 和 LSB 的初始化脚本并且可以替代sysvinit。其他部分包括日志记录守护程序,用于控制基本系统配置的实用程序,如主机名,日期,区域设置,维护登录用户列表以及运行容器和虚拟机,系统帐户,运行时目录和设置以及用于管理简单网络的守护程序配置,网络时间同步,日志转发和名称解析。(如需了解更多 -> http://0pointer.de/blog/projects/systemd.html)

    systemctl的基础用法

    systemctl是操作systemd的主要命令,它用来检查和系统状态和管理系统和服务。你可以在命令后使用 -H user@host 控制远程主机。这个命令将会使用ssh连接远程systemd实例

    • 查看系统状态

      $ systemctl status
      
    • 查看units列表

      $ systemctl 或者 $ systemctl list-units
      
    • 查看失败的units

      $ systemctl --failed
      
    • 可以在/etc/systemd/system 或者 /usr/lib/systemd/system 找到可用 unit文件,下面的这个命令列出已安装的unit file

      $ systemctl list-unit-files
      
    • 查看某个服务的状态

      $ systemctl status pid
      

    使用units

    units 可以是 services(.service) ,mount points (.mount) ,devices (.device) 或者socket(.socket) ,使用systemctl 通常需要使用全名(包含后缀名),当然systemd可以自动的推断,名称中带有@通常是模板unit,@后通常表示参数,在unit文件中使用%i代替

    • 立即启动一个unit

      # systemctl start unit
      
    • 立即停止一个unit

      # systemctl stop unit
      
    • 重启一个unit

      # systemctl restart unit 
      
    • 重新加载一个unit的配置

      # systemctl reload unit
      
    • 查看一个unit的状态,包括它是否在运行

      # systemctl status unit
      
    • 查看一个unit是否开机自启

      # systemctl is-enabled unit
      
    • 设置一个模块开机自启动

      # systemctl enable unit
      
    • 立即启动一个unit并设置开机自启动

      # systemctl enable --now unit 
      
    • 关闭一个unit的开机自启

      # systemctl disable unit
      
    • 重启一个systemd manager 管理器的配置(但不会重新加载unit的配置)

      # systemctl daemon-reload
      

    编写unit文件

    unit file 语法类似与 XDG中的(键值).desktop ,像Microsoft windows中的 .ini文件,文件命名只能包含字母数字字符下划线和句点,#注释只能用在新行

    [Unit]
    Description=Some HTTP server
    After=remote-fs.target sqldb.service
    Requires=sqldb.service
    AssertPathExists=/srv/webserver
    
    [Service]
    Type=notify
    ExecStart=/usr/sbin/some-fancy-httpd-server
    Nice=5
    
    [Install]
    WantedBy=multi-user.target
    
  • 相关阅读:
    急招.NET系列职位
    程序员成长的三个方法
    xwebkitspeech
    张小龙的产品
    浅析商业银行“业务连续性管理体系”的构建
    Sonar for dotNet
    Moles测试Contrustor时候遇到的一个问题
    EntityFramework 用Moles的mock
    Accessor中Generic的元素是internal/private的会导致转换失败的异常
    Android自用Intent 介绍
  • 原文地址:https://www.cnblogs.com/rainymemory/p/10922061.html
Copyright © 2020-2023  润新知