如何在启动时自动运行 /etc/init/ttys0.conf?

如何在启动时自动运行 /etc/init/ttys0.conf?

我有一个剧本/etc/init/ttyS0.conf。我正在配置 KVM 客户机以进行串行控制台访问所以即使网络接口坏了,我仍然可以通过串行连接访问它。

我可以ttyS0通过运行来启动它sudo start ttyS0,它工作正常,直到我重新启动。重新启动系统后,它ttyS0不再运行。

如何让这个脚本在启动时自动调整?

谢谢


我的脚本如下:

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 115200 ttyS0 xterm

答案1

这里

respawn
console none

start on (local-filesystems)
stop on [!12345]

script

exec start ttyS0
end script

我认为应该可以工作。否则,用启动你想要启动的脚本替换启动 tty0

答案2

做这件事有很多种方法。

如果脚本调用一个进程,您可以使用 /etc/init.d。

将脚本放入 /etc/init.d,然后您需要使用 chmod a+x "script" 更改文件的权限。然后运行 ​​update-rc.d "script" defaults,这将启动一切。脚本现在应该在启动时启动。

以下是其他一些示例:

示例 1

示例 2

答案3

Ubuntu 使用基于运行级别的 SYSV 启动(与 Debian 相同)。

您必须将脚本添加到您当前使用的运行级别。对于 Ubuntu,在里面默认情况下,进程数为 2。因此,您必须将 ttyS0.conf 添加到 rC2.d 目录并声明您想要启动它(而不是停止)。您可以通过向脚本添加软链接来实现这一点,如下所示:

ln -s /etc/init/ttyS0.conf /etc/rc2.d/S99ttyS0.conf

S99 前缀表示“S”->启动脚本,以及“99”脚本启动的顺序(如果在此脚本之后需要运行其他脚本,则降低这个数字)。

然后您需要在重新启动(运行级别 6)或关闭(运行级别 0)时停止它:

ln -s /etc/init/ttyS0.conf /etc/rc0.d/S99ttyS0.conf
ln -s /etc/init/ttyS0.conf /etc/rc6.d/S99ttyS0.conf

前缀类似,除了“S”->停止脚本(仅适用于运行级别 0 和 6)。

希望这能有所帮助。更多信息这里

相关内容