赞助连接

赞助连接

阅 读 文 章

FreeBSD系统启动进程:init

[来源:网上转载 () | 作者:网友() | 时间:2007-07-07 | 浏览:人次 ]


console none unknown off secure
如果在引导过程中fsck命令运行出了问题,init将使你的FreeBSD系统进入单用户模式以使root用户可以修复问题。如果你用insecure代替secure来设置控制台,init将在你可以继续干之前索取口令。

ttyv0 "/usr/libexec/getty Pc" cons25 on  secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on  secure
ttyv2 "/usr/libexec/getty Pc" cons25 on  secure
ttyv3 "/usr/libexec/getty Pc" cons25 on  secure
ttyv4 "/usr/libexec/getty Pc" cons25 on  secure
ttyv5 "/usr/libexec/getty Pc" cons25 on  secure
ttyv6 "/usr/libexec/getty Pc" cons25 on  secure
ttyv7 "/usr/libexec/getty Pc" cons25 on  secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
你可以看到在我的FreeBSD系统上除了控制台以外还有八个虚拟终端;我可以通过按ALT键加一个控制键来访问每个终端。例如ALT F1可访问控制台,ALT F2访问ttyv1, ALT F3访问ttyv2,等等。如果我启动了X会话,那么它可以用ALT F8来访问。如果我把ttyv8上的单词off改为on,那么我可以在引导时得到一个X终端而不是控制台。然后可以继续用我ALT加功能键来访问其它终端。我的所有这些虚拟终端都标为“secure”,说明它们都可接受root登录。你可以有多少个虚拟终端是由你的FreeBSD版本所决定的;如果你希望建立更多虚拟终端,可以读一下这个faq。

现在让我们移到拨号终端:

# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
ttyd1 "/usr/libexec/getty std.9600" dialup off secure
ttyd2 "/usr/libexec/getty std.9600" dialup off secure
ttyd3 "/usr/libexec/getty std.9600" dialup off secure
你可以看到我有四个可获得的拨号终端,但它们都被关闭了。如果我想让用户通过调制解调器访问我的FreeBSD系统,我就必须至少打开它们中的一个,还必须决定是否让这些用户可以用root身份登录;如果不,就把单词“secure”改为“insecure”。你是否看到getty栏含有数字9600,它说明数据传输率为9600bps。因为现在很多调制解调器都有更高的速率,我也可以把它改为57600。最后,最好读一下FreeBSD handbook中的拨号服务部分。

/etc/ttys文件的最后一部分是网络或伪终端。你会看到它们有很多,准确地说是255个,范围从:

# Pseudo terminals
ttyp0   none         network



ttySv   none         network
且缺省情况下它们都没有被允许。

如果你为了使/etc/ttys更改生效以使init使用这些更改,可以超级用户的身份向init发送一个HUP信号,如:

kill -1 1
这里前面的-1代表信号1(HUP),而后面1代表进程1(init)。

那么现在,哪个/etc/ttys文件中提到的getty程序继续保持运行呢?man 8中对getty的描述如下:

描述
init(8)调用getty程序打开并初始化tty行,读取一个登录名,然后调用login(1)。
所以,init读取/etc/ttys并在每个你在配置文件中设定的终端上启动一个getty进程。getty的工作是监视终端看是否有人试图登录。如果有的话,getty将启动登录程序校验用户的登录名和口令。如果校验合格,登录程序会启动用户的登录命令解释器并把用户置于他们的宿主目录下。当用户具有一个命令解释器后,他们就可以与操作系统交互了。现在它就可以让命令解释器解释用户的输入并确保启动了必要的进程。

当一个用户退出登录时,再次调用init启动其它的getty进程以继续监视终端等待其它的登录尝试。
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 进程 启动 系统 终端 可以 文件 init /usr/libexec/getty

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.