Linux 为什么要使用 systemd 啊

2019-02-27 16:24:00 +08:00
 jiafaner
linux 为什么要使用 systemd 啊

过去把脚本写到 rc.local 里面就行了

现在都是什么啊,一两个服务,配置了一下午都没有弄起来,

执行 systemctl start xxx.service 就能够运行

可就是不能自动执行,即使我用过 systemctl enable xxx.service

还有什么地方需要设置吗?
5952 次点击
所在节点    问与答
45 条回复
k9982874
2019-02-27 17:57:56 +08:00
@k9982874 #20 楼主执行过了 systemctl enable,审题不严谨。。查服务日志吧
hcymk2
2019-02-27 17:59:08 +08:00
syste m d 有 debug 模式有日志的。
dbw9580
2019-02-27 18:05:09 +08:00
你得把你的配置文件贴出来啊,不然是要隔空猜吗?
https://superuser.com/questions/955922/enabled-systemd-unit-does-not-start-at-boot
Jeremial
2019-02-27 18:06:30 +08:00
[Unit]
Description=blablabla
Requires=systemd-networkd.service
After=network-online.target systemd-resolved.service
Wants=network-online.target systemd-resolved.service
Jeremial
2019-02-27 18:07:20 +08:00
使用 systemd 挂载 smb 的时候遇到过, 需要 network OK 了才行
biggray0312
2019-02-27 18:23:34 +08:00
楼主你试试把配好的 systemd service 文件放到系统挂载点下的目录中, 比如 /etc/systemd/.../ 下,再去 enable,也许就好了。我过去的经验告诉我这个和 service 文件的位置是有关系的。
Ansen
2019-02-27 18:33:13 +08:00
systemctl enable xxx
mason961125
2019-02-27 18:44:04 +08:00
哦...想起来了,systemctl daemon-reload 了吗?
reself
2019-02-27 18:46:53 +08:00
如果 start 能正常启动而 enable 不能正常自动启动的话,考虑是服务依赖的问题,调整一下服务依赖,按依赖顺序启动应该就没问题了
kernel
2019-02-27 19:34:07 +08:00
你要用回 rc.local 也是一句话的事儿
hljjhb
2019-02-27 20:32:00 +08:00
帖 service 内容有这么难么 让大家帮着一起猜(〜 ̄▽ ̄)〜
tabris17
2019-02-27 20:38:54 +08:00
systemd 的确是好东西,启动脚本写起来太麻烦了
jiafaner
2019-02-27 21:45:08 +08:00
@tabris17
@hljjhb
@kernel
@reself
@Ansen
@Jeremial
@Jeremial
@k9982874
@kkhu2004
@MeteorCat


谢谢大家,我临时用了一个 cron 去启动,然后先解决了线上服务的问题。

这时候,我用了我的虚拟机,也是 CentOS,用了一模一样的 systemd 的配置,居然能自动启动了

我在线上机器上再试了,还是不行,我自己的 CentOS 里面却能用

我再研究研究,看看是怎么回事

实在快被这个东西搞死了
CallMeReznov
2019-02-27 22:17:19 +08:00
其实很简单,LZ 搜索一下默认系统里有没有较晚启动的服务,然后在配置文件 Wants 填上,试验一下会不会正常即可
我第一次搞也是莫名其妙的(其实现在也只是会找网上的抄下来罢了)
cy97cool
2019-02-27 22:26:58 +08:00
我瞎猜一下 难道是\r\n 的换行方式问题?
改成\n 换行试试
zmz125000
2019-02-27 23:10:41 +08:00
不同用户环境变量的问题?
izoabr
2019-02-27 23:19:12 +08:00
我也觉得是,这东西太复杂了点,以前 init script 的时候很干净很清爽,自己很清楚都起了啥服务,都干啥用的,现在一堆服务都不知道啥玩意儿。
但对桌面系统的话可能会比较好
uyhyygyug1234
2019-02-27 23:39:22 +08:00
centos 我之前记录了一个样例

配置 Supervisor 开机启动:

vi /usr/lib/systemd/system/supervisord.service

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target


配置开机自启
systemctl enable supervisord

验证一下是否为开机启动:systemctl is-enabled supervisord
q397064399
2019-02-28 07:34:30 +08:00
supervisorctl 大部分人只是想要一个自动启动的守护进程罢了
julyclyde
2019-02-28 08:03:00 +08:00
你不需要并不代表没人需要
你可以坚持你自己的用法啊,也不是必须学 systemd

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

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

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

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

© 2021 V2EX