我在启动过程中使用了grub2和systemd(而不是inittab)的centos7启用串行控制台,
为了安全起见,我想在启动完成之后,在引导的最后一次撤销串行input/输出。
我怎样才能做到这一点?
更新:
我发现,通过系统服务,即使grub2启动它,控制台也可以通过它来识别/启用,所以我认为这会closures它。
systemctl stop [email protected]
如果所有其他服务都已联机,则在完全成功启动后,如何自动实现这一function。 我可以使用rc.local但这是init.d的遗产,并没有考虑到其他服务已经正常上网。
这感觉非常哈克,但它的工作。 机器启动后会停止串口terminal。
/etc/systemd/system/killconsole.service:
[Unit] Description=kill console after boot After=default.target [Service] Type=simple ExecStart=/bin/systemctl stop [email protected] [Install] WantedBy=default.target
然后只需运行systemctl enable /etc/systemd/system/killconsole.service启用该单元。
您也可以使用独立的定时器单元触发上述操作,直到启动X分钟后才会触发。 如果你尝试一下,一定要从服务中取出Install部分,然后运行一个systemctl disable来将它从default.target的希望列表中删除。
请注意,“成功启动”的定义可能会有所不同。 例如,如果该盒子的networking被占用,所有的服务可能启动正常,但你可能仍然需要串行访问。 因此,我强烈推荐创build一个ExecStartPre确保系统处于活动状态(在networking上)并将其置于ExecStartPre选项中。 如果Pre脚本返回失败的退出代码,则该服务将不会运行,串行控制台也不会被禁用。