SHELL脚本让程序变服务:
准备工作:
1)准备server模型
2)把server变成守护进程
3)编写shell脚本来操作makefile与启动server程序
设置脚本开机自启动
方案一:
1) 修改脚本权限为执行权限
sudo chmod 755 daemon.sh
2) 修改脚本内容,添加启动信息(*关键)
vi daemon.sh //打开脚本
在#!/bin/bash下添加以下内容
启动块:
### BEGIN INIT INFO
#Provides: daemon 程序名
#Required-Start: $remote_fs $network 启动项
#Required-Stop: $remote_fs $network 关闭项
#Default-Start: 2 3 4 5 启动优先级(数据越大,优先级越高)
#Default-Stop: 0 1 6 关闭优先级
#Short-Description: The daemon LINUX-Colin Application Server 描述信息
### END INIT INFO
** 以上添加了INIT启动信息,必须添加,否则报错。
3) 移动到/etc/init.d目录下创建一个指向脚本文件的符号链接:
cd /etc/init.d
更新系统启动队列:
sudo update-rc.d test.sh start daemon 99 2.(99,代表启动序号(数字越大启动越晚)2代表启动级别,.代表结尾(需加))
sudo update-rc.d test.sh start daemon remove 把daemon从启动队列删除
好了,重启试试吧,重启后ps aux 你的server是否启动了呢?
现在你的server已经变为服务,可以通过start等服务命令来 开启或关闭它
4) 卸载启动脚本:
cd /etc/init.d
sudo update-rc.d -f daemon remove
方案二:
编辑: /etc/init.d/rc.local 文件,在最后加上你的脚本即可。
比如:我已经编写了一个脚本server.sh,存放在/home/colin/下面
在Ubuntu终端输入: sudo vi /etc/init.d/rc.local
在结尾出加入: sh /home/colin/server.sh //即可开机自动加载脚本