如何自动登录Linux及自动运行相应程序

http://tech.ddvip.com   2007年03月10日    社区交流

本文详细介绍如何自动登录Linux及自动运行相应程序

  本文以redhat 8.0操作系统平台为背景,阐述如何实现启动级别为3时的自动登录,及自动运行相应程序,并简要介绍了如何在redhat 8.0下自动登录X window(系统启动级别为5),并自动运行指定的应用程序。

  一、启动级别为3时自动登录的实现

  启动级别为3时自动登录的实现涉及两个软件包:mingetty-1.00-3.src.rpm软件包及util-linux-2.11r-10.src.rpm软件包。

  (1)mingetty-1.00-3.src.rpm软件包

  对于启动级别为3的自动登录的实现,仍然需要考察/etc/inittab脚本,3:123:respawn:/sbin/mingetty tty3.

  因此,如果想在启动级别3的情况下实现自动登录,必须要了解mingetty的功能,甚至要修改mingetty的代码。用命令rpm -qf /sbin/mingetty 可知redhat 8.0版本的mingetty包含在mingetty-1.00-3.src.rpm软件包中,下载该软件包,安装源代码,缺省情况下,代码会安装在/usr/src/redhat/下,我们关心的只是mingetty.c源文件。mingetty.c约有五百行代码,主要实现如下功能:

  打开指定的tty(由参数指定);

  提示用户登录(login:);

  获得登录用户名;

  把用户登录名作为参数,调用/bin/login。

  我们所关心的部分实质上只有以下三行:  ... ...
  438 while ((logname = get_logname ()) == 0); //mingetty.c文件438行
  439 execl (_PATH_LOGIN, _PATH_LOGIN, "--", logname, NULL);
  440 error ("%s: can't exec " _PATH_LOGIN ": %s", tty, sys_errlist[errno]);
  ... ...

  第一行的功能是输出login提示,并获得用户输入的登录用户名,登录用户名由logname返回。因此,可作如下修改:

责编:豆豆技术应用

正在加载评论...