概述
一般我们打算把一些服务,例如mysql,tomcat,Nginx设置开机自启动的话一般是有三四种方式来实现,下面以mysql,tomcat,Nginx做例子来演示。
一、使用定时任务cron命令
创建定时任务来运行.sh脚本。在shell脚本中编写nginx,mysql等的启动脚本。
这里注意shell脚本得先调试成功。
二、Linux使用supervisor来管理进程
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。
组成部分
supervisord:服务守护进程
supervisorctl:命令行客户端
WebServer:提供与supervisorctl功能相当的WEB操作界面
XML-RPCInterface:XML-RPC接口
supervisor安装,基本配置详细步骤可以参考前面内容:
- 安装supervisor程序。
- 配置supervisor配置文件。
- supervisor开机自启动。
supervisor配置文件Nginx,tomcat等,可以参考:
#!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binPROGNAME=supervisordDAEMON=/usr/bin/$PROGNAMECONFIG=/etc/$PROGNAME.confPIDFILE=/tmp/$PROGNAME.pidDESC="supervisorddaemon"SCRIPTNAME=/etc/init.d/$PROGNAME#Gracefullyexitifthepackagehasbeenremoved.test-x$DAEMON||exit0start(){echo-n"Starting$DESC:$PROGNAME"$DAEMON-c$CONFIGecho"..."}stop(){echo-n"Stopping$DESC:$PROGNAME"supervisor_pid=$(cat$PIDFILE)kill-15$supervisor_pidecho"..."}status(){ps-ef|grepsupervisord}case"$1"instart)start;;stop)stop;;status)status;;restart)stopstart;;*)echo"Usage:$SCRIPTNAME{start|stop|restart|status}">&2exit1;;esacexit0
三、使用Linux服务器自带的service自动启动服务。
Linux常用的发行版本:Redhat系列(如Centos)和Debian系列(如debina和Ubuntu)等。具体可百度Linux版本。
nginx开机启动服务
Linux系统service启动的服务命令因Linux版本不同而不同。
- Linux系统进程保存路径:/etc/init.d,这个目录下保存用service来操作的服务。
- 编写Nginx,tomcat,mysql等shell脚本,将这些脚本放入/etc/init.d路径下。
- 将脚本加入自启动进程。Redhat系如centos系统中使用命令chkconfig,debina系如Ubuntu系统中使用命令sysv-rc-conf
四、修改/etc/rc.local此文件。
在/etc/rc.local中添加如下一行
/opt/apache-tomcat-7.0.29/bin/startup.sh---软件的启动脚本的路径。
(脚本绝对路径)
注意:要添加在exit0上边,reboot试试。
一般用上面几个方式就可以配置某项服务开机自启了,后面再分享各个服务对应的一些启动脚本。