我希望 systemd 将关闭消息发送到与启动期间使用的 TTY 不同的 TTY。更具体地说,如果系统开始关闭,系统应将任何消息发送到/dev/ttyS0
。
到目前为止,这是我尝试过的:
让 systemd 更改它发送输出的位置:
systemd
本身接受--default-standard-output
/--default-standard-error
但一旦 systemd 启动我就无法找到更改这些设置的方法。systemctl daemon-rexec
不接受新 systemd 实例的新参数。按照中所述通过
TIOCCONS
设置更改控制台/dev/ttyS0
这个问题:系统调用似乎成功,但 systemd 继续将输出发送到 tty1。我怀疑这个 itctl 命令只重定向控制台的输出,而不是切换控制台的 tty(参见 #3 和 #4)。关闭除 S0 之外的所有虚拟终端以强制 systemd 切换到串行终端:这会失败,因为
deallocvt
认为 tty1 是控制台(即使在设置TIOCCONS
为 on之后/dev/ttyS0
)。停止每个虚拟终端的 systemd getty 服务似乎也没有帮助。使用 rm天真地删除
/dev/tty{1..}
设备,终止关联的 Agetty 进程,并确保停止 systemd getty 服务: 仍然不起作用,也许 systemd 保留了 tty1 的打开文件描述符。
所有这些尝试都未能阻止 systemd 用于/dev/tty1
输出关闭消息。作为最后的努力,我正在考虑数据库编辑 systemd,但如果可能的话,我宁愿避免走这条路。
有没有办法改变 systemd 在关闭期间发送输出的位置?