脚本开机启动

vim /etc/init.d/rc.local 文件(Ubuntu)

/etc/rc.d/rc.local或者 /etc/rc.local里(centos),

方法一:

1) 将你的启动脚本复制到 /etc/init.d目录下

2) 设置脚本文件的权限
$ cd /etc/init.d
$ sudo chmod 755 /etc/init.d/ap.sh 
3) 执行如下命令将脚本放到启动脚本中去:
$ sudo update-rc.d ap.sh defaults 95
 
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。
 
卸载启动脚本的方法:
$ cd /etc/init.d
 
$ sudo update-rc.d -f ap.sh remove
命令输出的信息参考如下:

Removing any system startup links for /etc/init.d/ap.sh ...
/etc/rc0.d/K95ap.sh
/etc/rc1.d/K95ap.sh
/etc/rc2.d/S95ap.sh
/etc/rc3.d/S95ap.sh
/etc/rc4.d/S95ap.sh
/etc/rc5.d/S95ap.sh
/etc/rc6.d/K95ap.sh

方法二:
Centos 5.x 以前都可以用/etc/rc.local
Centos 6.x 以后改成/etc/rc.d/rc.local

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

使用命令 vi  /etc/rc.local   

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

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

方法三  方法一中添加 :     server   脚本  start/stop

建立/etc/init.d/zzxap文本文件,输入下面的内容:

复制代码
#!/bin/sh

case "$1" in
start)
        start-stop-daemon --start --background --exec /etc/init.d/ap.sh  #添加脚本位置
;;
stop)
        start-stop-daemon --stop --name ap.sh     #这里不需要加位置
esac

chmod 755 /etc/init.d/zzxap

这样子,就可以使用service命令来启动和关闭进程了,例如启动进程如下:

root@localhost:~# service zzxap start
root@localhost:~# ps aux|grep zzxap
root@localhost:~# service zzxap stop
root@localhost:~# ps aux |grep zzxap



update-rc.d zzxap defaults 99   
update-rc.d -f zzxap remove(卸载)

到这里还不能实现开机自启动 要接着设置第一步骤
$ sudo chmod 755 /etc/init.d/ap.sh 
3) 执行如下命令将脚本放到启动脚本中去:
$ sudo update-rc.d ap.sh defaults 95       #   update-rc.d后面有三个参数,分别是/etc/init.d下的:1、脚本名字,2、默认安装方式,3、运行的优先级。   优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。






背景知识

1、运行级别:

Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级程序和服务都不同,所要完成的工作和要达到的目的也不同,系统可以在这些运行级之间进行切换,来完成不同的工作。

运行级别等级:

  • 0        系统停机状态
  • 1        单用户模式,只准许root用户对系统进系维护
  • 2~5  多用户模式(其中3为字符界面、5为图形界面)
  • 6         重启启动

在这里需要注意的是,在Debian下(ubuntu其中之一)level2~5是没有任何区别的。

使用以下命令,可以查看当前的运行级别:

[plain] view plaincopy
 
  1. runlevel  
runlevel显示上次的运行级别和当前的运行级别,“N”表示没有上次的运行级别。

使用以下命令,可以切换运行级别:

[plain] view plaincopy
 
  1. init [123456]  
例如,init 0表示关机,init 6表示重启。

2、启动步骤:

  • 读取MBR信息,启动Boot Manager,Linux通常使用GRUB作为Boot Manager。
  • 加载系统内核,启动init进程。init进程是Linux的根进程,所有的系统进程都是它的子进程。
  • init进程读取/etc/inittab文件中的信息,并进入预设的运行级别。在这里需要说下的是,在ubuntu的6.10版本以后,就没有了/etc/inittab文件,是因为inittab已经被update软件包所取代了,具体的可以查看/usr/share/doc/update目录。就不在这里介绍了。
  • 执行/etc/rcS.d/目录下的脚本,然后是/etc/rcX.d/目录下的脚本,X代表的是数字0~6。rcS.d和rcX.d目录下的文件都是以,S或K加上两位数字组成的,其中S代表start,K代表kill,而两位数字代表启动顺序,数字越大代表级别越低。
原文地址:https://www.cnblogs.com/hanxing/p/4013623.html