[电子邮件受保护] 和 [电子邮件受保护] 有什么区别

[电子邮件受保护] 和 [电子邮件受保护] 有什么区别

要禁用我的设备上的某些 getty /dev/ttyAMA0,我必须使用 来屏蔽它。这很好用。所以我启用了getty 。效果也很好。systemctl mask [email protected]ttyUSB1systemctl enable [email protected]

[email protected]所以我的问题: a和 a之间有区别吗[email protected]

答案1

要查看这两个单元(或者更确切地说,单元模板)之间的差异,只需查看文件之间的差异即可[电子邮件受保护][电子邮件受保护],您可以/lib/systemd/system在您的系统上找到它。

(此处链接的文件指向 systemd v239 中的文件,这是撰写本文时的最新版本。这些文件中包含 m4 宏,因此它们在安装之前进行了处理,但这是 m4 处理引入的微小更改,因此它们是足够接近。)

有一些差异,但主要的差异是ExecStart=每个单元调用的命令。

单元[电子邮件受保护]调用此命令:

ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM

尽管[电子邮件受保护]调用此命令:

ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

该命令使用于[电子邮件受保护]传递agetty参数--keep-baud,以配置串行端口速度。在某种方式,[电子邮件受保护]将在串行端口上工作,但它可能无法正确配置串行端口,这可能最终无法正常工作,或者可能比正确配置时的速度慢。

另一方面,[电子邮件受保护]传递agetty参数--noclear,因此在用户注销后控制台屏幕不会被清除(传统上至少是在 tty0 上配置的。)

与单元文件的进一步区别:

  • [电子邮件受保护]绑定到串行端口 ( ) 的 udev 设备BindsTo=dev-%i.device,因此如果它是可移动设备(例如 USB),当设备被移除或拔出时,systemd 将停止 getty。
  • [电子邮件受保护]检查 tty0 是否存在 ( ConditionPathExists=/dev/tty0),因此如果内核中禁用了对本地控制台的支持,它不会生成任何本地控制台。
  • [电子邮件受保护]取消设置区域设置变量 ( UnsetEnvironment=LANG LANGUAGE LC_...),因为本地化通常在本地控制台上不受支持或支持不佳。

关于您屏蔽 ttyAMA0 并启用 ttyUSB1 的特定情况,ttyUSB1 是一个串行端口(至少,它模拟一个),因此使用[电子邮件受保护]会更合适。

然而,启用 getty@ 或[电子邮件受保护]屏蔽 @ttyAMA0 并不是实现这一目标的最佳方法。

systemd 从内核获取其控制台配置,通常是从console=内核命令行中的参数(这是通过systemd-getty-生成器,因此请参阅其文档以获取更多详细信息。)因此,您需要做的就是在内核命令行上配置控制台(使用诸如 之类的参数console=ttyUSB1,尽管您可能也想包含本地控制台,例如tty0),systemd 将执行以下操作:正确的事。

看一眼这篇关于 systemd 中串行控制台支持的博客文章更多细节。

相关内容