这里的第一篇文章。我试图在CentOS 6计算机上运行一些测试,但是我的测试禁用了网络,所以我通过串口进行通信。
我创建了一个启动作业,该作业设置ttyS1,使其上有一个bash shell。我用:
/sbin/agetty -n -l /bin/bash ttyS1 115200 vt102这是一个黑客,将/bin/bash作为登录程序运行。它可以工作,但是我想将--rcfile传递给/bin/bash (否则,我会得到一些不受欢迎的输出"bash: /root/..bashrc: Permission“,即使它是以root的形式运行)。
注意:使用的agetty版本既没有-版本也没有-登录选项。
发布于 2016-11-10 01:33:38
agetty期望为-l选项运行一个程序。您可以使该脚本(例如)成为Perl脚本,并使其提供参数,例如,调用此脚本myshell
#!/usr/bin/perl
exec 'bash --rcfile myprofile'并在myshell命令中使用agetty的路径名。
我使用Perl是因为它不读取您的bash (或sh)配置文件。如果使用运行/bin/sh的脚本,它可以读取用户的.profile (这似乎与您的意图相反)。exec特性是以其他脚本语言(包括sh和bash)提供的。
发布于 2016-11-10 08:38:18
您可能会认为这太过分了,但是与其使用getty并在串行行上运行shell,不如尝试使用滑滑,。这将您的串口转换成一个网络接口,您可以使用ssh或其他方式同时连接多个登录,使用rsync发送文件等等,所有这些都具有可靠性和错误检测的优势。
假设您的内核支持它(通常是这种情况),它的设置和使用都很简单。最简单的方法是使用slattach命令,它通常在net-tools包中。在一台机器上发出命令
sudo slattach -p cslip -s 19200 /dev/ttyS0 &
sudo ifconfig sl0 192.168.1.2 pointopoint 192.168.1.3其中,第一条命令指定波特率和串行设备,第二条命令提供该机器和另一台机器的IP地址。在另一端,给出相同的命令,交换两个IP地址。选择一组您尚未使用的地址。
https://unix.stackexchange.com/questions/322201
复制相似问题