很多时候,自己源码编译的软件都想设置为开机自动启动,免得机器不小心重启后还要手动去开启服务;特别是mysql、PHP、 Nginx等;
先建立个开机启动时测试脚本:
[email protected]:~# vim testBoot.sh
#!/bin/bash
# =========================================================================
# 测试开机启动
# =========================================================================
Log=/root/reboot.log.txt
Date='date +%Y%m%d%H%M%S'
echo "# ================== `${Date}`=> start ===================" >> ${Log}
echo '=======================完美的一天========================' >> ${Log}
# 保存退出!
[email protected]:~# 复制脚本到 /etc/init.d/ 目录下
[email protected]:~# cp testBoot.sh /etc/init.d/
[email protected]:~# 给脚本加可执行权限
[email protected]:~# chmod +x /etc/init.d/testBoot.sh
[email protected]:~# 增加开机启动
[email protected]:~# update-rc.d testBoot.sh defaults
警告:insserv: warning: script 'testBoot.sh' missing LSB tags and overrides
[email protected]:~# 因为testBoot.sh不符合debian开机自启文件的内容规范,debian要求文件头部有启动信息。
[email protected]:~# 参考同目录下的/etc/init.d/skeleton文件头
[email protected]:~# 把如下,头回入到testBoot.sh里面
[email protected]:~# vim /etc/init.d/testBoot.sh
#!/bin/bash
# =========================================================================
# 测试开机启动
# =========================================================================
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: 这是测试开机启动
# Description: 详细描述此开机测试脚本
### END INIT INFO
Log=/root/reboot.log.txt
Date='date +%Y%m%d%H%M%S'
echo "# ================== `${Date}`=> start ===================" >> ${Log}
echo '=======================完美的一天========================' >> ${Log}
# 保存退出!
[email protected]:~# 先删除刚才开机启动
[email protected]:~# update-rc.d -f testBoot.sh remove
[email protected]:~# 再增加开机启动,是不是就不再有这个警告了?!
[email protected]:~# update-rc.d testBoot.sh defaults
[email protected]:~# 果然不再有警告了!重启试下脚本是否有开机自动启动了
[email protected]:~# reboot
查看是否生成了/root/reboot.log.txt文件!!有生成,测证明增加开机启动成功,因为以上开机启动测试脚本主要是生成一个便于我们查看是否开机启动的日志