linux开机自启

 

一、/etc/rc.local 这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。

使用命令 vi /etc/rc.local

然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。

二、crontab(类似于windows的任务计划服务) 通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。 crontab -l 列出时间表; crontab -e编辑时间表; crontab -d删除时间表;

“-l”没什么可说的,就是一个查看而已; “-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件); “-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;

那到底该如何编辑呢?

crontab文件的格式是:M H D m d CMD。 一个6个字段,其中最后一个CMD就是所要执行的程序,如haha.sh。 M:分钟(0-59) H:小时(0-23) D:日期(1-31) m:月份(1-12) d:一个星期中的某天(0-6,0代表周日)

这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。

例如,每天的8点5分执行haha.sh,就是“5 8 * * * /opt/./haha.sh”。

好像和“开机程序自动启动”扯远了,现在回归正题。其实上面介绍的crontab的功能已经具备了开机自动启动的能力,可以写一个监测脚本,每5分钟执行一次(*/5 * * * * ./haha.sh),如果程序不在了就重新启动一次。

三、注册系统服务 操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。

比如我想把某个已经安装了的服务添加为系统服务,可以执行以下命令:

chkconfig –add 服务名称 (首先,添加为系统服务,注意add前面有两个横杠)

chkconfig -leve 启动级别 服务名 on

(说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)

chkconfig -leve 启动级别 服务名 off

(说明,off表示关闭自启动)

例如:chkconfig -level 3 mysql on (说明:让mysql服务在命令行模式,随系统启动)

也可以使用 chkconfig –add 服务名称 来删除系统服务


如果要查看哪些服务被添加为系统服务可以使用命令 :

ntsysv 或者chkconfig –list

如果要查看哪些程序被添加为自启动,可以使用命令 :

cat /etc/rc.local (查看这个文件中添加了哪些程序路径)