Systemd: 管天管地管一切

2017-03-05 22:05:44 +08:00
 Osk
默默吐个槽, systemd 虽说挺给力的,但总感觉用力过猛了,导致这些年来每次想起 systemd 都是两个字:闹心。

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

不太明白 systemd 这种管理一切的做法,甚至连 grub 的饭碗都要去抢
15677 次点击
所在节点    Linux
54 条回复
MntCw
2017-03-06 13:26:46 +08:00
不是应该 nmcli 看看连的是哪个 profile 吗?
nevill
2017-03-06 13:55:07 +08:00
@xinglp 不太明白你的意思,是吐槽说靠 udevd 不好么?对于大部分使用者来说这似乎并不重要,用 initctl 的方式写配置就能得到自运行的服务而且启动速度不慢,虽然比不上 systemd 这种还能利用 cgroup 的来管理进程组,但已经是比自写脚本更好的方式了。
顺便吐槽一下,一些 node 程序员动不动要自己启一个 forever 来管理一堆进程 ╮(╯_╰)╭
imn1
2017-03-06 14:33:35 +08:00
/etc/NetworkManager/NetworkManager.conf
managed=true/false (默认 false)
其他配置参考 wiki

service network-manager restart
kn007
2017-03-06 14:51:42 +08:00
@jsfaint 噢,对,说错。
ggu2
2017-03-06 15:11:36 +08:00
Gentoo openrc 好
okudayukiko0
2017-03-06 16:34:38 +08:00
Debian 系的包的服务脚本还是 Systemd+init 混合的, BSD 就没有 systemd , Redhat 从 RHEL6 开始用 Upstart ,有 systemd 和 NetworkManager 对新手是件好事。
Osk
2017-03-06 20:15:39 +08:00
昨天睡前随便吐槽了下,主要是不知道 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
2017-03-06 20:53:26 +08:00
Linux OS == GNU/Linux + systemd + OpenSSH + bash
loading
2017-03-06 21:50:15 +08:00
当年为了启动快那么一点,冒死换到 system 。
yunshansimon
2017-03-06 22:27:54 +08:00
非常讨厌 systemctl ,苹果的类似东西 launchctl 估计是除了分区类型以外最差的设计,被学到了 ubuntu 上。很喜欢 upstart 这样的,简洁明了。而且 systemctl 无论服务启动成功还是失败竟然没有任何提示,还要去 info ,或者 list-units 里面才能看到,这种脱裤子放屁的事情怎么能忍。
redsonic
2017-03-07 08:26:16 +08:00
@Osk 有可能以后终端从内核移出, systemd 直接自带包管理器,加上虚拟机和 docker 的支持,接管整个用户态环境。就俩组件了 kernel 和 systemd 。什么? 这比 windows 的架构还激进.......
ragnaroks
2017-03-07 08:56:36 +08:00
@yunshansimon #50
+1,这是最恶心的,启动失败后什么也不输出,还得要手动查看一下
okudayukiko0
2017-03-07 15:21:36 +08:00
@yunshansimon 部分发行版 systemd 启动服务失败会报错(如 rhel ),部分发行版默认不会。只是从 init 到 systemd 升级而已,为什么要如此引战?
chankay
2017-03-22 18:10:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX