我以前能够使用sudo start
或sudo stop
示例:sudo start ttyS0
这将启动 getty,以便我可以从串行终端登录。它在 Ubuntu 15.04 中不起作用。在 15.04 中是否有其他方法可以启动和停止进程?
答案1
服务管理体制发生了改变。
每个系统管理工具集都有自己的实用程序。您习惯使用的实用程序是 upstart 附带的实用程序,它们是initctl start
和 的简单垫片initctl stop
。但这是 Ubuntu 版本 15。 您不再使用 upstart 了。
您正在使用 systemd,服务控制命令是 的子命令,systemctl
而不是 的子命令initctl
。因此,服务是用 启动的systemctl start
,用 停止的systemctl stop
,用 启用的systemctl enable
,用 禁用的systemctl disable
,用 查询的systemctl status
。
服务和服务配置已经发生改变。
你可能已经遵循了如下说明串行控制台操作方法将提供的 转换/etc/init/tty1.conf
为/etc/init/ttyS0.conf
。这是一个新贵配置文件,systemd 会直接忽略它。您从那里学到的所有内容都不适用于 systemd,甚至运行级别的概念也不适用,因为在 systemd 世界中,它已经“过时”了。
getty
真实终端设备上的systemd 配置文件是。这是/lib/systemd/system/[email protected]
模板单元,参数化串行设备文件的名称。因此实际要使用的服务名称将是[email protected]
。您只需像任何其他服务一样启用/禁用/启动/停止它即可。
如果你想要一个真正的连续剧安慰,而不仅仅是一个普通的串行终端,那么您甚至不需要这样做。systemd 有一个机制,[email protected]
每当内核被告知不要将其控制台放在虚拟终端上时,它就会自动实例化。
进一步阅读
- Lennart Poettering(2013-10-07)。
systemctl
. systemd 手册页。freedesktop.org。 - 詹姆斯·亨特和克林特·拜伦(2014年)。 “实用工具”。 新贵食谱。
- 史蒂夫·兰加塞克(2015-04-10)。串行控制台操作方法.乌本。
- Lennart Poettering(2013-10-07)。
systemd-getty-generator
. systemd 手册页。freedesktop.org。
答案2
如果你不需要在运行时启动/停止 tty 服务,而只需要在启动阶段启动它,那么你不必担心学习复杂的systemd和系统控制事物。
您可以简单地通过在 GRUB2(或其他引导加载程序)中添加以下行来启动 ttyS0 端口。
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
#Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no -->
stop=1"
我在运行 Virtualbox 环境的 ubuntu 15.10 服务器中完成了此操作。
[ OK ] Started Serial Getty on ttyS0. -- started by GRUB2
[ OK ] Started Getty on tty1. -- started by systemd
[ OK ] Reached target Login Prompts.
...
Ubuntu 15.10 server1 ttyS0 -- redirect console to ttyS0, if necessary