有没有办法改变 systemd 在关闭期间发送输出的位置?

有没有办法改变 systemd 在关闭期间发送输出的位置?

我希望 systemd 将关闭消息发送到与启动期间使用的 TTY 不同的 TTY。更具体地说,如果系统开始关闭,系统应将任何消息发送到/dev/ttyS0

到目前为止,这是我尝试过的:

  1. 让 systemd 更改它发送输出的位置: systemd本身接受--default-standard-output/--default-standard-error但一旦 systemd 启动我就无法找到更改这些设置的方法。systemctl daemon-rexec不接受新 systemd 实例的新参数。

  2. 按照中所述通过TIOCCONS设置更改控制台/dev/ttyS0这个问题:系统调用似乎成功,但 systemd 继续将输出发送到 tty1。我怀疑这个 itctl 命令只重定向控制台的输出,而不是切换控制台的 tty(参见 #3 和 #4)。

  3. 关闭除 S0 之外的所有虚拟终端以强制 systemd 切换到串行终端:这会失败,因为deallocvt认为 tty1 是控制台(即使在设置TIOCCONS为 on之后/dev/ttyS0)。停止每个虚拟终端的 systemd getty 服务似乎也没有帮助。

  4. 使用 rm天真地删除/dev/tty{1..}设备,终止关联的 Agetty 进程,并确保停止 systemd getty 服务: 仍然不起作用,也许 systemd 保留了 tty1 的打开文件描述符。

所有这些尝试都未能阻止 systemd 用于/dev/tty1输出关闭消息。作为最后的努力,我正在考虑数据库编辑 systemd,但如果可能的话,我宁愿避免走这条路。

有没有办法改变 systemd 在关闭期间发送输出的位置?

相关内容