一、通过服务的方式设置自启动
1、 在/etc/init.d 下建立相关程序的启动脚本
/etc/rc.d/init.d
2、 chkconfig --add mysqld(添加服务到chkconfig列表中)
chkconfig --del mysqld(从chkconfig移除服务)
chkconfig --list(查询当前所有自动启动的服务)
3、 chkconfig mysqld on (开机启动)
chkconfig mysqld off (关闭开机启动)
二、rc.local 自定义开机程序
/etc/rc.local 这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。也就是说,如果有任何需要在系统启动时运行的工作,则只需写入 /etc/rc.d/rc.local 配置文件即可。
#编辑文件
vi /etc/rc.local
# ------------------------------
#在文件的最后追加相要执行的脚本指令
#例:添加可扫行文件全路径
/home/username/ExecutableFile
注意:添加的启动指令若不能自动挂起,阻塞执行,会导致无法进入系统,在 rc.local 使用阻塞指令比较危险,请谨慎使用。
三、sh非阻塞脚本
#! /bin/bash
# chkconfig: 2345 10 90
# description: xxxxxx auto start process
#subset1 自动启动
nohup /home/XXXXX.exe &> /dev/null & echo $! > pidfile.txt
四、常见错误及解决办法
1、service xxxxxx does not support chkconfig
添加下面两句到 #!/bin/bash 之后,问题解决。
# chkconfig: 2345 10 90
# description: xxxxxxxxxxxxxxxxxxxxxxxxxxx
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。
2、 /bin/bash^M: bad interpreter: No such file or directory
原因:如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。
1)、首先你先要检查一下看看你的脚本文件是不是这个问题导致的,用vi命令打开要检查的脚本文件,然后用命令检查一下,看看是不是dos字样
:set ff?
2)、如果是dos格式的,既fileformat=dos,则执行以下指令,问题解决
:set ff=unix
:qw