Linux系统下如何设置开机启动项
1.修改/etc/rc.d/rc.local文件,在rc.local 后面加上你的shell脚本命令
赋值权限
chmod u+x app.sh

修改后的rc.local如下
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/bin/bash /usr/myfoder/camtest/Debug/app.sh

增加rc.local的执行功能
chmod +x /etc/rc.d/rc.local


2. 使用最原始的方式,在rc.d里面创建启动项
新建shell脚本
#!/bin/sh
#chkconfig: 2345 80 90
#description:AutoStart

#下面是脚本正文
.....


其中AutoStart是启动的脚本名称描述,与shell脚本文件名相同!

把Shell脚本放入/etc/rc.d/init.d/目录下
sudo mv ./AutoStart /etc/rc.d/init.d/AutoStart

添加脚本的可执行权限
chmod u+x /etc/rc.d/init.d/AutoStart

使用chkconfig命令把脚本添加进开机启动项目中
chkconfig --add AutoStart   //在不同模式下增加连接(ln  -s)
chkconfig AutoStart on    //systemctl enable AutoStart

执行完成后,可以检查一下/etc/rc.d/rc*.d下有没有生成相应的启动链接,指向刚才的脚本,80指的是启动的顺序,90指的是停止的顺序

传入参数:
service  network  start
network的绝对路径 =>$0
start  =>$1

删除开机自启动服务:
chkconfig --del    AutoStart
rm -rf /etc/rc.d/init.d/AutoStart




服务不支持 chkconfig 的解决方法
系统服务,在chkconfig --add  servername的时候老是提示服务不支持 chkconfig,经过查找,解决办法如下。
示例,auto_run的前三行如下:
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run

第一行,告诉系统使用的shell,所以的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚 本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的 文件连接,第一个字符为K,告诉脚本,现在是关闭模式。不会运行
注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。
常见的错误
    “服务不支持 chkconfig”:
    请注意检查脚本的前面,是否有完整的两行:
    #chkconfig: 2345 80 90
    #description:auto_run
    在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。
    如果运行chkconfig老是报错,如果脚本没有问题,建议直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。