linux添加自启动脚本和服务

有些时候我们需要在服务器里使用一个脚本来运行服务,但是如果服务器重启了,还需要手动再执行一次,这样就比较麻烦,为了简化工作,可以把这些脚本加入到开机选项中去。

方法一

1.先编写启动脚本,注意模板代码前面注释不可以丢弃,如下:

#add for chkconfig
#chkconfig: 2345 70 30
#description: the description of the shell   #关于脚本的简短描述
#processname: servicename                    #第一个进程名,后边设置自启动的时候会用到

说明:
2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5就是图形界面X
70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。
30是指系统关闭时,脚本的停止顺序号。

加入注释以后,接着后面添加需要加入开机启动的脚本或者服务。

2.chkconfig

给脚本添加上可执行权限:
chmod +x youshell.sh
利用chkconfig命令将脚本设置为自启动:
chkconfig --add servicename

方法二

编辑rc.local文件,将需要开机执行的脚本加入到文件中,需要注意要放在 exit 0 的前面,否则无效!
sudo nano /etc/rc.d/rc.local

例如:

# Other codes ...
# Your command add here
sudo sh /home/pi/Lanproxy/bin/startup.sh &
/etc/init.d/nginx start &
/etc/init.d/php5-fpm start &

exit 0

P.S.

有时我们自己在/etc/rc.d/rc.local里面增加的随机器启动的脚本和指令总是不能自动加载和启动,机器启动后手动执行脚本又能成功,经常被搞得晕头转向的。最近我经过1天的辛苦测试和查找资料,终于解决了这问题,因为我的脚本需要调用jdk,但是在该脚本执行过程中,环境变量未被加载,所以需要在所执行的sh脚本前手动加一句:

source /etc/profile #使环境变量生效

标签:none