[root@bogon ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#This script will be executed *after* all the other init scripts.
#You can put your own initialization stuff in here if you don‘t
#want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
[root@bogon ~]#
方案一:
使用/etc/rc.d/rc.local自启动脚本文件实现开机自动运行普通用户脚本
有两种实现方法:
1、把需要开机启动的脚本程序直接写入/etc/rc.d/rc.local文件中,这样子开机时就会自动执行这些脚本程序,运行对应的服务程序。需要在root环境下编辑
2、先把脚本程序写好,定义好路径,然后使用su命令来执行,这里只需把su命令写进/etc/rc.d/rc.local脚本文件中即可。
比如:我需要开机执行/home/ricky/bin/ricky.sh脚本,那么在/etc/rc.d/rc.local中加入以下语句:[root@bogon~]#echo "su - ricky -c ‘/bin/sh /home/ricky/bin/ricky.sh‘" >>/etc/rc.d/local
命令的执行路径一定要用绝对路径,防止因环境变量原因而出错。
方案二:
我们都了解/etc/init.d/目录下的所有文件都是脚本文件,这个目录下的脚本文件,在设置好开机自启动项后,在开机时会自动执行。
使用root账号,自启动脚本编辑脚(随意写的一个启动脚本)
[root@bogon ~]#vim /etc/init.d/networkstart
#!/bin/bash
#network start scripts
#chkconfig: 235 80 30 --235指定的启动级别,在哪写启动级别下启动;--80 启动的优先级;--30 关闭的优先级
service network start –-启动network服务(你也可以把普通用户脚本放这里,开机启动的时候就会执行;也可以定义好脚本路径,把执行脚本的命令放进这里)
文件默认是没有执行权限的,所以要调整好脚本文件权限
[root@bogon ~]# chmod +x /etc/init.d/networkstart
还需要加入启动项设置开机启动,使脚本文件生效
[root@bogon ~]# chkconfig --add networkstart 加入启动项
[root@bogon ~]# chkconfig networkstart on 设置开机自启动
如果开了防火墙,还得把防火墙关掉
[root@bogon ~]# service stop iptables 关闭防火墙
root@bogon ~]# setenforce 0 关闭SELinux
原文地址:http://blog.51cto.com/13691477/2113933