最近移植ubuntu12.04,在加载模块时,遇到一些需要开机启动的程序,模块加载,就上网研究,得出如下办法:


1. 开机启动时自动运行程序


   Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置


   文件继续引导过程,启动其它进程。通常情况下,修改放置在 


     /etc/rc或


     /etc/rc.d 或 


     /etc/rc?.d   www.2cto.com  


   目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 


     /etc/rc.d/rc.local 文件(该文件通常是 系统最后启动的脚本),


   在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。


 如果是模块,加上一行“insmod xxx.ko”


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 文件。


  www.2cto.com  


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″ < plan.txt


     at>Ctr-D


     Job 1 at 2000-11-09 12:00