日期:2014-05-16  浏览次数:20848 次

在linux下设置开机自动启动程序的方法
在linux下设置开机自动启动程序的方法

下面用自启动apache为例;
自启动脚本:
/usr/local/apache2/bin;
./apachectl start
文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行.
#chmod +x /etc/rc.d/init.d/apached                 //设置文件的属性为可执行
#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache     //建立软连接,快捷方式
#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache

在Red Hat Linux或centos中自动运行程序
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″ < plan.txt
  at>Ctr-D
  Job 1 at 2000-11-09 12:00

  2000-11-09 12:00时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。
posted @ 2011-11-07 14:54 Home of Jason Liu 阅读(5) 评论(0) 编辑
linux开机启动脚本的顺序

如果服务器重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下linux下开机自动启动脚本所涉及的知识和方法、如下:
1、相关基础知识点
   1)redhat的启动方式和执行次序是:
      加载内核
      执行init程序
      /etc/rc.d/rc.sysinit # 由init执行的第一个脚本
      /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
      /etc/rc.d/rc.local     #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)
      /sbin/mingetty # 等待用户登录
     
      在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
      调入keymap以及系统字体
      启动swapping
      设置主机名
      设置NIS域名
      检查(fsck)并mount文件系统
      打开quota
      装载声卡模块
      设置系统时钟
      等等。
      /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的
      ,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx
      从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
      /etc/rc.d/rc3.d/下的脚本。
      值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中
      的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
     
      init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
      action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
      至此,LINUX的启动结束。
    2)init运行级别及指令
    一、什么是INIT:
  init是Linux系统操作中不可缺少的程序之一。
  所谓的init进程,它是一个由内核启动的用户级进程。
  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,in