Chinaunix首页 | 论坛 | 博客
  • 博客访问: 582186
  • 博文数量: 199
  • 博客积分: 5087
  • 博客等级: 大校
  • 技术积分: 2165
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 21:53
文章存档

2010年(199)

我的朋友

分类: LINUX

2010-05-20 16:54:47

1.开机启动时自动运行程式
  Linux加载后, 他将初始化硬件和设备驱动,
然后运行第一个进程init。init根据设置文件继续引导过程,启动其他进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或
/etc/rc?.d 目录下的脚本文件,能使init自动启动其他程式。例如:编辑 /etc/rc.d/rc.local
文件,在文件最末加上一行"xinit"或"startx",能在开机启动后直接进入X-Window。
  2.登录时自动运行程式
 
 用户登录时,bash首先自动执行系统管理员建立的全局登录script
:/ect/profile。然后bash在用户起始目录下按顺序查找三个特别文件中的一个:/.bash_profile、/.bash_login、
/.profile,但只执行最先找到的一个。
  因此,只需根据实际需要在上述文件中加入命令就能实现用户登录时自动运行某些程式(类似于DOS下的Autoexec.bat)。
  3.退出登录时自动运行程式
  退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。
  4.定期自动运行程式
  Linux有一个称为crond的守护程式,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户能通过crontab 命令来建立、修改、删除这些命令文件。
 
 例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab
cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程式("*"表示不管当天是星期几)。
  5.定时自动运行程式一次
  定时执行命令at 和crond 类似(但他只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
  $ at 12:00
  at>mailto Roger -s ″Have a lunch″ Ctr-D
  Job 1 at 2000-11-09 12:00
  2000-11-09 12:00时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。

#!/bin/bash
RESTART="........"       #里面写相应服务代码
START="......."
STOP=".........."
case   "$1"   in
    restart)
          $RESTART   
          echo   "......"
          ;;
    start)
          $START   
          echo   "......"
          ;;
    STOP)
          $STOP
          echo   "......"
          ;;
    *)
          echo   "Usage:   $0   {restart   ¦   start   ¦   stop}"
          exit   1
esac
exit   1
脚本写完要修改一下权限     chmod   u+x   test.sh


先,linux随机启动的服务程式都在/etc/init.d这个目录里,里面的文件全部都是脚本文件(脚本程式简单的说就是把要运行的程式写到一个
文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个目录里更有诸如名为rc1.d,
rc2.d一直到rc6.d的目录,这些都是linux不同的runlevel,我们一般进入的X
windows多用户的运行级别是第5级,也就是rc5.d,在这个目录下的脚本文件就是运行第5级时要随机启动的服务程式。需要注意的是,在每个rc
(1-6).d目录下的文件其实都是/etc/init.d目录下的文件的一个软连接(类似windows中的快捷方式),也就是说,在
/etc/init.d目录下是全部的服务程式,而每个rc(1-6).d只链接他自己启动需要的相应的服务程式!  
要启动
scim(某一程式),我们首先要知道scim程式在哪里,用locate命令能找到,scim在/usr/bin/scim这里,其中usr表
示是
属于用户的,bin在linux里表示能执行的程式。这样,我就能编写一个脚本程式,把他放到/etc/init.d里,然后在rc5.d里做一个相
应的软链接就能了。
这个脚本其实非常简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。

需要注意的一点是,在rc5.d里,每个链接的名字都是以S或K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这
样,你就能知道,如果我要哪个服务随机启动,就把他名字第一个字母K改成S就能了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接
还要起名为SXXX,这样系统才能让他随机启动。
转自:
               
阅读(529) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~