#!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH ### BEGIN INIT INFO # Provides: BaiduPCSWeb # Required-Start: $network $syslog # Required-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: BaiduPCSWeb # Description: Start or stop the BaiduPCSWeb ### END INIT INFO NAME="BaiduPCSWeb" NAME_BIN="BaiduPCS-Go" #MMP这里的cat居然是这样的 check_port=$(cat /usr/local/BaiduPCSWeb/port) Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m" Info="${Green_font_prefix}[信息]${Font_color_suffix}" Error="${Red_font_prefix}[错误]${Font_color_suffix}" RETVAL=0 check_running(){ PID=`ps -ef |grep "${NAME_BIN}" |grep -v "grep" | grep -v "BDW.sh"| grep -v "init.d" |grep -v "service" |awk '{print $2}'` if [[ ! -z ${PID} ]]; then return 0 else return 1 fi } do_start(){ check_running if [[ $? -eq 0 ]]; then echo -e "${Info} $NAME (PID ${PID}) 正在运行..." && exit 0 else echo -e "${Info} $NAME 启动中..." ulimit -n 51200 nohup /usr/local/BaiduPCSWeb/BaiduPCS-Go web --port ${check_port} --access 2>&1 & sleep 2s check_running if [[ $? -eq 0 ]]; then echo -e "${Info} $NAME 启动成功 !" else echo -e "${Error} $NAME 启动失败 正在尝试以兼容方式启动(适用于3.6.4及以下)!" ulimit -n 51200 nohup /usr/local/BaiduPCSWeb/BaiduPCS-Go web --port ${check_port} 2>&1 & sleep 2s check_running if [[ $? -eq 0 ]]; then echo -e "${Info} $NAME 兼容方式启动成功 !" else echo -e "${Error} $NAME 兼容方式启动失败,终止尝试 !" fi fi fi } do_stop(){ check_running if [[ $? -eq 0 ]]; then kill -9 ${PID} RETVAL=$? if [[ $RETVAL -eq 0 ]]; then echo -e "${Info} $NAME 停止成功 !" else echo -e "${Error} $NAME 停止失败 !" fi else echo -e "${Info} $NAME 未运行" RETVAL=1 fi } do_status(){ check_running if [[ $? -eq 0 ]]; then View_Config echo -e "${Info} $NAME (PID $(echo ${PID})) 正在运行..." else echo -e "${Info} $NAME 未运行 !" RETVAL=1 fi } do_restart(){ do_stop do_start } case "$1" in start|stop|restart|status) do_$1 ;; *) echo -e "使用方法: $0 { start | stop | restart | status }" RETVAL=1 ;; esac exit $RETVAL