重定向Linux串行控制台

重定向Linux串行控制台

我想在 Linux 中进行 telnet 会话时重定向我的串行端口。

我有一个嵌入式 Linux 盒子,它有一个串行控制台。对盒子进行 telnet 操作后,我可以输入串行控制台和 telnet 控制台。我想停止串行控制台访问或将其重定向到其他内容。从 telnet 控制台退出后,我应该能够再次访问串行控制台。请问有人可以建议一下吗?

我计划cat /dev/console > /dev/ttyp0在 telnet 会话开始时放置。它解决了当 telnet 会话控制台打开时无法访问串行控制台,但当我退出 telnet 控制台并在串行控制台上键入某些内容时,对于 shell 命令-/bin/sh: command not found(Shell 可能未运行?)的问题。

谢谢。

答案1

每个控制台都有一个与其关联的进程。您通常可以很容易地在进程列表中找到它们。在 Ubuntu 上它被称为gettyagetty。在其他系统上它可能是login,或者它可能只是一个 shell 进程。

您所要做的就是禁用该进程来关闭串行端口。你不能杀死它,因为init只会产生一个新的,但你可以暂停它:

kill -STOP <pid>

<pid>在哪里找到ps.

然后,当您想重新启用它时,请重新启动它:

kill -CONT <pid>

或者,如果您希望它重新开始,请杀死它并让重生发生:

kill -KILL <pid>

当然,在离开telnet之前你要记得重新启动它。如果您想要更简单的东西,这取决于您的系统具有哪些实用程序。如果你有,cron那么你可以设置一些东西来检查 telnet 是否已经消失(自上次查看以来)并重新启动串行终端。这会有点棘手,但有可能。如果您没有 cron,则启动某种后台进程,该进程会在 SIGHUP 上唤醒并重新启动。这可能更加棘手。

相关内容