Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
Osk
V2EX  ›  Linux

Systemd: 管天管地管一切

  •  
  •   Osk · Mar 5, 2017 via Android · 17589 views
    This topic created in 3529 days ago, the information mentioned may be changed or developed.
    默默吐个槽, systemd 虽说挺给力的,但总感觉用力过猛了,导致这些年来每次想起 systemd 都是两个字:闹心。

    这次踩的坑不知道算不算是 systemd networkd 挖的,因为我需要给网卡配静态 ip 地址,就创建了一个 netctl 的 profile ,重启发现 ssh 连不上, ip 不通,登陆路由器发现是 dhcp 的 ip ,连上后看日志,该 profile 对应的 sercvice 报错了,一脸懵,我没安装其它的网络管理程序啊, dhcp 客户端服务也没启用,总之折腾了自己几次后才在 Arch wiki 上看到 systemd 的这个东东,禁用后果然正常了。不知道是自己万年不去看 wiki 还是很久前看得不仔细,反正这个问题搞得无比闹心。

    不太明白 systemd 这种管理一切的做法,甚至连 grub 的饭碗都要去抢
    54 replies  •  2017-03-22 18:10:30 +08:00
    lianz
    lianz
    Mar 5, 2017❤️1
    1
    在我看来, 新产品 /新技术到底好不好, 首先看看业界对它的接受程度, 业界普遍采用了, 那随大流 99%没错.
    回到 systemd, 虽然很多大牛喷, 但是主流发行版纷纷采用它不是没理由的. 所以我很看好它, 同时说实话我很喜欢它(主要我是被 init.d 脚本弄得太累心了)
    est
    est
    Mar 5, 2017
    2
    k8s 笑而不语。这个框就没有不能装的东西。
    abcbuzhiming
    abcbuzhiming
    Mar 5, 2017
    3
    我始终对这玩意报以戒心。我认同楼主说的用力过猛的言论。我还是更认同 Unix 的那个“最小职责”原则。至于这玩意为啥广泛能被业界采用?不要把老外当金科玉律,老外的技术界也是一堆翔,之前还不是爆出过仅仅因为政治正确就搞的某开源组织的领头人大换血的事件。
    daviswei
    daviswei
    Mar 5, 2017
    4
    与 selinux 比,谁更用力过猛?
    reus
    reus
    Mar 5, 2017
    5
    刚在 vultr 装了个 arch , networkd 默认是不启用的吧,我用 netctl 管理 ip ,没遇到什么问题。应该是某个过程里 networkd 服务被启用了。
    fuxkcsdn
    fuxkcsdn
    Mar 5, 2017
    6
    刚把 Debian 升级到 7 的时候,被 systemd 给闹心了半天
    直到现在我每次用 apt-get 安装软件,想要修改脚本或者看下脚本是咋写的
    都要去把 deb 包下下来,解压,然后 tree 看下启动脚本都 TMD 放在哪个路径
    /etc/systemd/system
    /var/lib/systemd/system...
    反正我对这玩意是很反感
    DesignerSkyline
    DesignerSkyline
    Mar 5, 2017
    7
    r#6 @fuxkcsdn 你需要先 enable
    nyanyh
    nyanyh
    Mar 5, 2017❤️3
    8
    systemd 这个东西据说是借鉴了 OSX 上的 launchd ,我觉得 systemd 更好用。我个人也很喜欢这种包揽全局的 daemon ,虽然批判的也多,然而和 1l 说的一样,连 CentOS 都切换到 systemd 不是没有道理的
    BOYPT
    BOYPT
    Mar 5, 2017❤️1
    9
    这还只是技术迁移过程的阵痛吧; 你想想 linux 里面有多少种配置组件、文件、格式配置全部各不相同互不通用。
    jimzhong
    jimzhong
    Mar 5, 2017 via Android
    10
    我觉得 systemd 挺好的
    weyou
    weyou
    Mar 5, 2017 via Android
    11
    其实就是一种习惯问题,现在大部分人不是都习惯于 ios 的包揽一切吗?
    54c3
    54c3
    Mar 6, 2017
    12
    systemd 作為一種 init ,管網絡配置甚麼的還在情理之中,好奇怎麼做到管 bootloader 的。(求個相關 keyword
    msg7086114
    msg7086114
    Mar 6, 2017 via Android
    14
    上个月还抓了一个 networkd 的大虫,幸好官方及时修掉了…
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    Mar 6, 2017 via iPhone
    15
    Systemd 装预编译的软件包用起来很爽,但是真的要做修改的时候就爆炸了,都啥跟啥啥啊,根本看不到也不知道怎么改
    icylogic
    icylogic
    Mar 6, 2017
    16
    @BXIA 不是修改一下 unit 就好了么 …… 里面的内容也算简单直观啊 ……

    找不到 unit 的:

    $ systemctl status systemd-networkd

    > ● systemd-networkd.service - Network Service
    > Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled)
    > Active: inactive (dead)
    > Docs: man:systemd-networkd.service(8)

    编辑:
    $ (sudo) systemctl edit systemd-networkd (--full)


    我用 Arch 是直接用 netctl 的,没有被 networkd 干扰过 ……

    $ systemd-analyze blame

    > 5.578s [email protected]
    > ...


    Arch Wiki:
    https://wiki.archlinux.org/index.php/Network_configuration
    Warning: Use a single method to manage the network, as several methods may conflict.

    https://wiki.archlinux.org/index.php/Systemd#Writing_unit_files
    /usr/lib/systemd/system/: units provided by installed packages
    /etc/systemd/system/: units installed by the system administrator
    love4taylor
    love4taylor
    Mar 6, 2017
    17
    systemd 明明很好用啊
    netfee
    netfee
    Mar 6, 2017 via Android
    18
    systemd +1
    lhbc
    lhbc
    Mar 6, 2017 via iPhone
    19
    systemd 很好用
    redsonic
    redsonic
    Mar 6, 2017
    20
    以后 linux 只需要下面几个组件: kernel , systemd , chrome , vim 。不是开发的,最后一个可以省了。
    we000
    we000
    Mar 6, 2017
    21
    十几年的 Linux 用户表示支持 systemd
    qianguozheng
    qianguozheng
    Mar 6, 2017
    22
    搞嵌入式的表示不引进
    jhaohai
    jhaohai
    Mar 6, 2017 via iPhone
    23
    systemd 好用,有了 systemd 打包人员再也不用写蹩脚的启动脚本了
    xmgit
    xmgit
    Mar 6, 2017
    24
    systemd version 32 以 cgroup v2 挂载才是坑...
    直接导致 docker 玩完,不得不将内核以 systemd.legacy_systemd_cgroup_controller=yes 方式启动
    jyf
    jyf
    Mar 6, 2017
    25
    统一格式是好事 但是具体统一到 systemd 这个格式我觉得挺挫
    mengzhuo
    mengzhuo
    Mar 6, 2017
    26
    总比自己写 init 好。。。曾经打过包的都知道这种痛
    wwhc
    wwhc
    Mar 6, 2017
    27
    每次新装 Gentoo ,最重要的事情是加上 USE="-systemd......."
    这 2 货带来的麻烦实在太多了
    winooxx
    winooxx
    Mar 6, 2017
    28
    ……我是觉得 systemd 比较好用来着
    nevill
    nevill
    Mar 6, 2017
    29
    不知道为啥 upstart 没有流行起来,大家还都习惯 /etc/init.d 下自己写脚本,忽然 systemd 就流行起来了,这不科学。。。
    kn007
    kn007
    Mar 6, 2017 via Android
    30
    同感,这也是我为什么没升级到 centos7 的原因,默默用着 6 。如果 centos7 能用 sysinit 我早就死机了
    kn007
    kn007
    Mar 6, 2017 via Android
    31
    早就升级了。。。
    qian19876025
    qian19876025
    Mar 6, 2017
    32
    真是太难用了 什么东西都要加个 XXX 前缀 不被喷才怪
    xinglp
    xinglp
    Mar 6, 2017 via Android
    33
    @nevill 靠劫持 udevd 啊
    Quaintjade
    Quaintjade
    Mar 6, 2017
    34
    对初学者来说很好用,表面看起来命令挺统一。
    xss
    xss
    Mar 6, 2017
    35
    @fuxkcsdn 你用 dpkg -L 就行了, 何必折腾的这么麻烦. systemd 很好用, 只不过学习成本略高. 就像用 notepad++的喷 vim 是一个道理, 等会用了, 反而不习惯 sysv 风格的管理模式.
    SpicyCat
    SpicyCat
    Mar 6, 2017
    36
    自己不熟怨它用力过猛?
    goodniuniu
    goodniuniu
    Mar 6, 2017
    37
    有好的介绍文档推荐吗?转变太大,感觉无从入手。
    ehs2013
    ehs2013
    Mar 6, 2017
    38
    @nevill C 社开发就是原罪
    discrete
    discrete
    Mar 6, 2017
    39
    你这头像和帖子标题看着挺精分的……
    jsfaint
    jsfaint
    Mar 6, 2017
    40
    @kn007 #30 然而 CentOS6 用的也不是 sysinit ,而是 ubuntu 已经抛弃的 upstart
    MntCw
    MntCw
    Mar 6, 2017 via Android
    41
    不是应该 nmcli 看看连的是哪个 profile 吗?
    nevill
    nevill
    Mar 6, 2017
    42
    @xinglp 不太明白你的意思,是吐槽说靠 udevd 不好么?对于大部分使用者来说这似乎并不重要,用 initctl 的方式写配置就能得到自运行的服务而且启动速度不慢,虽然比不上 systemd 这种还能利用 cgroup 的来管理进程组,但已经是比自写脚本更好的方式了。
    顺便吐槽一下,一些 node 程序员动不动要自己启一个 forever 来管理一堆进程 ╮(╯_╰)╭
    imn1
    imn1
    Mar 6, 2017
    43
    /etc/NetworkManager/NetworkManager.conf
    managed=true/false (默认 false)
    其他配置参考 wiki

    service network-manager restart
    kn007
    kn007
    Mar 6, 2017 via Android
    44
    @jsfaint 噢,对,说错。
    ggu2
    ggu2
    Mar 6, 2017 via Android
    45
    Gentoo openrc 好
    okudayukiko0
    okudayukiko0
    Mar 6, 2017 via iPhone
    46
    Debian 系的包的服务脚本还是 Systemd+init 混合的, BSD 就没有 systemd , Redhat 从 RHEL6 开始用 Upstart ,有 systemd 和 NetworkManager 对新手是件好事。
    Osk
    Osk
    OP
    Mar 6, 2017
    47
    昨天睡前随便吐槽了下,主要是不知道 netowrkd 也能接管网络设置,折腾半天最后找到 networkd 这个“元凶”,那感觉真的是很无语。我最开始在 Arch 上用的 systemd ,感觉确实很不错,速度真的快, service 文件写起来也确实比以前写脚本方便点,但是后面用着用着踩了一些坑后,感觉就变味了。

    @lianz 我觉得 systemd 好的地方确实多, service 文件比写 init.d 脚本舒服得多,但是堂子越摆越大。
    @abcbuzhiming 我就是觉得 systemd 太庞大了,疯狂扩张的感觉。
    @reus 确实 networkd 默认没开启,可能是 Archlinux ARM 默认启用的,我装过很多次 Arch 还是第一次遇到它。
    @nyanyh systemd 算是红帽钦定的, RHEL 都用它, CentOS 用很正常。
    @BOYPT 这么一想淡定了。。。
    @weyou 不能接受设计人员限制的太死
    @icylogic 关键是不知道 networkd 重新造了这个轮子
    @redsonic emacs 呢
    @qianguozheng busybox 够用不?
    @jhaohai 这点确实很方便
    @MntCw @imn1 根本没有装 NetworkManager
    lhbc
    lhbc
    Mar 6, 2017 via iPhone
    48
    Linux OS == GNU/Linux + systemd + OpenSSH + bash
    loading
    loading
    Mar 6, 2017 via Android
    49
    当年为了启动快那么一点,冒死换到 system 。
    yunshansimon
    yunshansimon
    Mar 6, 2017❤️1
    50
    非常讨厌 systemctl ,苹果的类似东西 launchctl 估计是除了分区类型以外最差的设计,被学到了 ubuntu 上。很喜欢 upstart 这样的,简洁明了。而且 systemctl 无论服务启动成功还是失败竟然没有任何提示,还要去 info ,或者 list-units 里面才能看到,这种脱裤子放屁的事情怎么能忍。
    redsonic
    redsonic
    Mar 7, 2017❤️1
    51
    @Osk 有可能以后终端从内核移出, systemd 直接自带包管理器,加上虚拟机和 docker 的支持,接管整个用户态环境。就俩组件了 kernel 和 systemd 。什么? 这比 windows 的架构还激进.......
    ragnaroks
    ragnaroks
    Mar 7, 2017
    52
    @yunshansimon #50
    +1,这是最恶心的,启动失败后什么也不输出,还得要手动查看一下
    okudayukiko0
    okudayukiko0
    Mar 7, 2017 via iPhone
    53
    @yunshansimon 部分发行版 systemd 启动服务失败会报错(如 rhel ),部分发行版默认不会。只是从 init 到 systemd 升级而已,为什么要如此引战?
    chankay
    chankay
    Mar 22, 2017
    54
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1331 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 21:00 · PVG 05:00 · LAX 13:00 · JFK 16:00
    ♥ Do have faith in what you're doing.