我有一个没有串口的 CentOS 7 无头系统。我有时我想使用串行电缆访问服务器,因此我插入 USB 串行电缆(连接到笔记本电脑的串行端口),但无法从连接中获取控制台/BASH。
我需要做些什么来告诉内核始终在出现 USB 串行端口时创建串行控制台吗?
答案1
编辑:如果您有最新版本,这将不起作用udev
,因为它会阻止您在脚本udev
中启动长期后台进程。RUN
您可能能够也可能无法通过在命令前加上 来解决此问题getty
,setsid
但无论如何,如果不是完全禁止的话,也不鼓励这样做。如果您有一个使用的系统,systemd
那么还有另一种方法可以实现此目的,我希望有人能提供另一个答案。与此同时,我将这个答案留在这里,以防它对您有用。
您不能使用 USB 串行端口作为控制台,因为 USB 在启动序列中初始化得太晚,在控制台需要工作很久之后。
您可以getty
在 USB 串行端口上运行,以允许您登录并在该端口上获取 shell 会话,但它不会是系统的控制台。
要getty
自动启动,请尝试以下udev
规则:
ACTION=="add", SUBSYSTEM=="tty", ENV{ID_BUS}=="usb", RUN+="/usr/local/sbin/usbrungetty"
将其放入规则文件中/etc/udev/rules.d
,然后创建此可执行脚本/usr/local/sbin/usbrungetty
:
#!/bin/sh
/sbin/getty -L "$DEVNAME" 115200 vt102 &