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