SDB:systemd
Systemd 是自 openSUSE 12.3 以来默认且唯一的 init 系统。
文档
完整的 openSUSE systemd 文档可以在 openSUSE 参考指南 中找到。
常见问题
服务未按预期启动
即使chkconfig cron显示 cron 应该启用,但似乎在启动后没有启动。systemctl start cron.service可以很好地启动它。请参阅 Bug #660493。
systemctl enable cron.service在这里有所帮助。
环回挂载在未手动加载“loop”模块的情况下无法工作
请参阅 Bug #661715。使用 SysV init 时,loop 模块会无条件地被/etc/init.d/boot.localfs加载,而现在不再使用它。如果您仍然想自动加载它,请执行echo loop > /etc/modules-load.d/loop.conf.
从 systemd 获取调试信息
要从 systemd 获取调试信息,您可以
- removequiet从内核命令行
- 通过添加以下内容来增加 systemd 的详细程度debug到内核命令行。您还可以添加systemd.sysv_console=1(0: 禁用,1: 启用) 以在控制台上显示旧版 SysV init 脚本的输出。
- 修改/etc/systemd/system.conf(查看 man systemd.conf) 以增加详细程度,如下所示
LogLevel=debug LogTarget=syslog-or-kmsg SysVConsole=yes
串行控制台无法工作
默认情况下,systemd 会启动一组最小的 getty 以使系统可访问。
在内核命令行中指定应使用哪个串行控制台时,只有列表中的最后一个(定义“活动”控制台)会启动一个 getty
- console=tty0 console=ttyS0 将在 tty0(即物理控制台)和串行控制台上启动一个控制台
- console=ttyS0 console=tty0 将仅在 tty0 上启动一个控制台
要强制启动串行端口上的控制台,请使用
ln -s /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service