zoukankan      html  css  js  c++  java
  • systemd

      本文参照:https://wiki.archlinux.org/index.php/Systemd#Basic_systemctl_usage 做了翻译和整理

      systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。

       systemd 被用作 Arch Linux 的 init。学习 systemd 的基本使用对维护 Arch Linux 大有帮助。通过 systemctl 命令可以和 systemd 进行交互。具体请参考 systemd#Basic systemctl usage

      与多数发行版使用的System V风格init相比,systemd采用了以下新技术:

    •  采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
    • 用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。        

      从设计构思上说,由于systemd使用了cgroup与fanotify等组件以实现其特性,所以只适用于Linux。有鉴于此,考虑到kFreeBSD分支的软件源无法纳入systemd,为与其他分支保持一致,Debian开发者尽力避免纳入systemd。但Lennart Poettering本人对此并不在意,并称”Debian kFreeBSD不过是玩具系统“。

      systemd用来管理系统的主要命令是 sytemctl systemadm 是 sytemctl 官方的前端UI工具。systemd的功能主要是:

      1、列出运行的单元(list running Unit)

      $ systemctl 

      或者

      $ systemctl list-units

      列出运行失败的单元

      $ systemctl --failed

      可以从/usr/lib/systemd/system/ 和  /etc/systemd/system/ 获得当前的单元(后者优先)。你可以用下面的命令查看安装的单元:

      $ systemctl list-unit-files

      2、使用单元(using Unit)

      单元可以是例如:服务(.service)、挂载点(.mount)、设备(.device)或者套接字(.socket)。

      当使用Unit的时候,必须Unit file的全名,包括后缀。例如:sshd.socket。有下面的几种特殊的指定形式。

    • 如果你没有指定后缀,systemctl会默认为是服务(.service)。例如,指定 netcfg和netcft.service是等效的
    • 挂载点会被自动转换为合适的.mount Unit。例如,指定/home和home.mount是等效的。
    • 和挂载点类似,设备单元(device Unit)会自动转换为合适的.device Unit。因此,指定/dev/sda2和dev-sda2.device等效。

      详细说明查看man systemctl.unit

      立刻激活某个Unit

      $ systemctl start unit

      立刻去激活某个unit

      $ systemctl stop unit

      

      

      

  • 相关阅读:
    单例模式的懒汉式在多线程的问题
    String、StringBuffer、与StringBuilder的区别
    java网络编程(7)——利用tcp实现文件上传
    java网络编程(6)——实现一个服务器把小写转大写
    java网络编程(5)——Tcp
    java网络编程(4)——udp实现聊天
    数据库单表增量备份方案
    java网络编程(3)——UDP
    使用Docker快速搭建Tensorflow开发环境
    word2vec并行实现小记
  • 原文地址:https://www.cnblogs.com/fangying7/p/3806913.html
Copyright © 2011-2022 走看看