PHP+Nginx+MongoDB启动脚本

每次开机都要手工一个一个启动,nginx,php,mongodb,太麻烦了,写了个脚本,但是MongoDB启动会输出日志,所以不是很完美,会显示日志。 /root/webserver #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH export LC_ALL=C # Check if user is root if [ $(id -u) != "0" ]; then printf "Error: You must be root to run this script!\n" exit 1 fi NGINXDAEMON=/home/server/nginx-1.4.1/sbin/nginx NGINXPIDFILE=/home/server/nginx-1.4.1/logs/nginx.pid PHPFPMDAEMON=/home/server/php-5.4.15/sbin/php-fpm PHPFPMPID=/home/server/php-5.4.15/var/run/php-fpm.pid MONGODBDAEMON=/home/server/mongodb-linux-i686-2.4.3/bin/mongod MONGODBCONF=/home/server/mongodb-linux-i686-2.4.3/mongodb.conf function_start() { printf "Starting Nginx+PHP+Mongodb...\n" if [ -f $NGINXPIDFILE ]; then printf "Nginx is runing!\n" else $NGINXDAEMON fi if [ -f $PHPFPMPID ]; then printf "PHP-FPM is runing!\n" else $PHPFPMDAEMON fi lsof -i:27017 && printf "MongoDB is runing!\n" || $MONGODBDAEMON --config $MONGODBCONF } function_stop() { printf "Stoping Nginx+PHP...\n" if [ -f $NGINXPIDFILE ]; then kill -QUIT `cat $NGINXPIDFILE` else printf "Nginx program is not runing!\n" fi if [ -f $PHPFPMPID ]; then kill -INT `cat $PHPFPMPID` else printf "PHP-FPM program is not runing!\n" fi lsof -i:27017 && killall mongod || printf "MongoDB is not runing!\n" } function_status() { if [ -f $NGINXPIDFILE ]; then printf "Nginx is runing!\n" else printf "Nginx is stop!\n" fi if [ -f $PHPFPMPID ]; then printf "PHP-FPM is runing!\n" else printf "PHP-FPM is stop!\n" fi lsof -i:27017 && printf "MongoDB is runing!\n" || printf "MongoDB is stop!\n" } if [ "$1" = "start" ]; then function_start elif [ "$1" = "stop" ]; then function_stop elif [ "$1" = "restart" ]; then function_stop function_start elif [ "$1" = "status" ]; then function_status else printf "Usage: /root/webserver {start|stop|restart|status}\n" fi chmod +x /root/webserver 添加开机启动: vi /etc/rc.local 添加 /root/webserver start 重启生效