Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402974
  • 博文数量: 62
  • 博客积分: 1483
  • 博客等级: 上尉
  • 技术积分: 779
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-24 12:25
文章分类

全部博文(62)

文章存档

2012年(2)

2011年(6)

2010年(6)

2009年(48)

我的朋友

分类: LINUX

2009-11-03 13:06:13

使用linux1x + expect登录校园网:
# sudo apt-get install expect (Expect需要Tcl编程语言的支持,此命令还会在系统上安装Tcl)

编写脚本:

#!/usr/bin/expect -f

spawn su

expect "Password: "

send "password\n"

expect "root@lzd-laptop*"

send "linux1x\n"

expect "eof"

当expect正在运行时,他的父进程是gnome-terminal,任何一个运行在xterm下的终端应用程序的父进程都是
gnome-terminal。
lzd@lzd-laptop:~$ ps -axj
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    1  8135  5517  5517 ?           -1 Sl    1000   0:03 gnome-terminal
 8135  9272  9272  9272 pts/0     9272 Ssl+  1000   0:00 /usr/bin/expect -f /hom
 9272  9274  9274  9274 pts/1     9287 Ss       0   0:00 su
 9274  9277  9277  9274 pts/1     9287 S        0   0:00 bash
 9277  9287  9287  9274 pts/1     9287 Sl+      0   0:00 linux1x

expect退出后,几秒后,expect退出xterm,su成为孤儿进程被init领养,expect还将以su为对话首领的对话
的控制终端偷走,使他们成为后台进程。什么时候想退出linux1x,可以给su发送SIGTERM或者其他终止此对话的信号,
这样以su为对话首进程的所有进程都会退出了。
lzd@lzd-laptop:~$ ps -axj
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    1  9274  9274  9274 ?           -1 Ss       0   0:00 su
 9274  9277  9277  9274 ?           -1 S        0   0:00 bash
 9277  9287  9287  9274 ?           -1 Sl       0   0:00 linux1x

将脚本中的password换成你的密码,这样就不必每次都在xterm下输入密码了,而且由于linux1x被调度成后台守护进程,即使你
退出系统,也不会掉线。缺点是你无从得知linux1x反馈给用户的信息了。

expect原理



阅读(1977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~