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


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
2017-03-06 08:34:08 +08:00
systemd 明明很好用啊
netfee
2017-03-06 08:36:22 +08:00
systemd +1
lhbc
2017-03-06 08:42:08 +08:00
systemd 很好用
redsonic
2017-03-06 08:50:14 +08:00
以后 linux 只需要下面几个组件: kernel , systemd , chrome , vim 。不是开发的,最后一个可以省了。

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

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

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

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

© 2021 V2EX