我有成对的机器。它们通过一个空调制解调器串行电缆相互连接。这些机器有时会故障,而诊断它们的唯一方法就是通过电缆,使用这对机器的另一个节点。
这些设备配置为在串行设备/dev/ttyAMA0上运行。这是默认的,我希望尽可能接近默认配置。
问题是:
我似乎无法让Getty放弃对设备的控制,所以我可以使用像minicom这样的东西登录到另一个设备。不幸的是,简单地杀死getty是行不通的,因为某些东西似乎会立即重新启动它。
我怎样才能让getty停下来?
发布于 2015-06-10 05:20:45
(顺便说一句,我从未见过"GeTTY“的拼写。我认为这是不对的。
简单地说,您可以禁用getty,方法是在/etc/inittab中注释掉它并运行init q重新读取配置。除非您使用的是systemd或Upstart,但是由于您没有这么说,所以我假设您没有使用。
更长的答案是,您的设置有一个内在的问题,并有缺陷。在两个串行端口上运行getty时,这两个getty进程都有开始无休止地相互聊天的风险。也就是说,一个将发送一个提示,另一个将其解释为一个用户名,这将导致它产生自己的提示,这个提示将被解释为原始端的用户名,等等。
正确的处理方法是使用两个串行端口,每个方向一个。系统1上的控制台串口连接到系统2上的额外串口,系统2上的控制台串口连接到系统1上的额外串口,由于两个系统上的“额外”串口从来不运行getty (只有控制台串口才能运行),因此从来没有禁用getty,并且screen或cu等可以直接使用该端口。
对于“额外”的串行端口,如果系统没有提供足够的内置串行端口,则可以使用USB串口适配器。因为这些端口只有在系统完全启动后才会被访问(与控制台串行端口不同),所以它们在USB总线上是可以的,而USB总线在引导过程的一半时间内才会被初始化。
发布于 2016-09-23 13:43:53
你可以发出停车信号。它不会重新启动,直到r或另一个信号被发送。
sudo kill -19 <pidOfGetty>您可以检查它当前是否在下列情况下停止:
ps a | grep getty
root 948 0.0 0.0 4656 2032 tty5 Ts+ Sep20 0:00 /sbin/getty -8 38400 tty5
root 958 0.0 0.0 4656 1880 tty2 Ss+ Sep20 0:00 /sbin/getty -8 38400 tty2进程状态代码T意味着它被停止。就像tty5上的进程948一样。
https://unix.stackexchange.com/questions/208627
复制相似问题