Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mdserver-web/scripts/init.d/mw.tpl

249 lines
7.4 KiB

7 years ago
#!/bin/bash
# chkconfig: 2345 55 25
# description: MW Cloud Service
### BEGIN INIT INFO
3 years ago
# Provides: Midoks
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts mw
# Description: starts the mw
### END INIT INFO
4 years ago
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
3 years ago
export LC_ALL="en_US.UTF-8"
7 years ago
mw_path={$SERVER_PATH}
4 years ago
PATH=$PATH:$mw_path/bin
4 years ago
3 years ago
4 years ago
if [ -f $mw_path/bin/activate ];then
source $mw_path/bin/activate
4 years ago
else
echo ""
4 years ago
fi
3 years ago
mw_start_panel()
{
isStart=`ps -ef|grep 'gunicorn -c setting.py app:app' |grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
3 years ago
echo -e "Starting mw-panel... \c"
3 years ago
cd $mw_path && gunicorn -c setting.py app:app
port=$(cat ${mw_path}/data/port.pl)
isStart=""
while [[ "$isStart" == "" ]];
do
echo -e ".\c"
sleep 0.5
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
let n+=1
if [ $n -gt 15 ];then
break;
7 years ago
fi
3 years ago
done
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 ${mw_path}/logs/error.log
echo '------------------------------------------------------'
3 years ago
echo -e "\033[31mError: mw-panel service startup failed.\033[0m"
3 years ago
return;
fi
echo -e "\033[32mdone\033[0m"
7 years ago
else
3 years ago
echo "Starting mw-panel... mw(pid $(echo $isStart)) already running"
7 years ago
fi
3 years ago
}
7 years ago
3 years ago
mw_start_task()
{
7 years ago
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
3 years ago
echo -e "Starting mw-tasks... \c"
cd $mw_path && python3 task.py >> ${mw_path}/logs/task.log 2>&1 &
sleep 0.3
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $mw_path/logs/task.log
echo '------------------------------------------------------'
echo -e "\033[31mError: mw-tasks service startup failed.\033[0m"
return;
fi
echo -e "\033[32mdone\033[0m"
7 years ago
else
3 years ago
echo "Starting mw-tasks... mw-tasks (pid $(echo $isStart)) already running"
7 years ago
fi
7 years ago
}
3 years ago
mw_start()
{
mw_start_task
3 years ago
mw_start_panel
3 years ago
}
7 years ago
3 years ago
# /www/server/mdserver-web/tmp/panelTask.pl && service mw restart_task
3 years ago
mw_stop_task()
7 years ago
{
if [ -f $mw_path/tmp/panelTask.pl ];then
echo -e "\033[32mThe task is running and cannot be stopped\033[0m"
3 years ago
exit 0
fi
3 years ago
echo -e "Stopping mw-tasks... \c";
7 years ago
pids=$(ps aux | grep 'task.py'|grep -v grep|awk '{print $2}')
arr=($pids)
for p in ${arr[@]}
do
kill -9 $p
done
echo -e "\033[32mdone\033[0m"
3 years ago
}
7 years ago
3 years ago
mw_stop_panel()
{
3 years ago
echo -e "Stopping mw-panel... \c";
7 years ago
arr=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
3 years ago
for p in ${arr[@]}
7 years ago
do
kill -9 $p &>/dev/null
done
3 years ago
pidfile=${mw_path}/logs/mw.pid
7 years ago
if [ -f $pidfile ];then
3 years ago
rm -f $pidfile
7 years ago
fi
echo -e "\033[32mdone\033[0m"
}
3 years ago
mw_stop()
{
mw_stop_task
3 years ago
mw_stop_panel
3 years ago
}
7 years ago
mw_status()
{
isStart=$(ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "\033[32mmw (pid $(echo $isStart)) already running\033[0m"
else
echo -e "\033[31mmw not running\033[0m"
fi
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "\033[32mmw-task (pid $isStart) already running\033[0m"
else
echo -e "\033[31mmw-task not running\033[0m"
fi
}
mw_reload()
{
isStart=$(ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "Reload mw... \c";
arr=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
for p in ${arr[@]}
do
kill -9 $p
done
6 years ago
cd $mw_path && gunicorn -c setting.py app:app
7 years ago
isStart=`ps aux|grep 'gunicorn -c setting.py app:app'|grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $mw_path/logs/error.log
echo '------------------------------------------------------'
echo -e "\033[31mError: mw service startup failed.\033[0m"
return;
fi
echo -e "\033[32mdone\033[0m"
else
echo -e "\033[31mmw not running\033[0m"
7 years ago
mw_start
7 years ago
fi
}
error_logs()
{
tail -n 100 $mw_path/logs/error.log
}
case "$1" in
'start') mw_start;;
'stop') mw_stop;;
'reload') mw_reload;;
7 years ago
'restart')
mw_stop
mw_start;;
3 years ago
'restart_panel')
mw_stop_panel
mw_start_panel;;
'restart_task')
mw_stop_task
mw_start_task;;
7 years ago
'status') mw_status;;
'logs') error_logs;;
6 years ago
'default')
cd $mw_path
3 years ago
port=7200
if [ -f $mw_path/data/port.pl ];then
port=$(cat $mw_path/data/port.pl)
fi
3 years ago
if [ ! -f $mw_path/data/default.pl ];then
echo -e "\033[33mInstall Failed\033[0m"
3 years ago
exit 1
3 years ago
fi
6 years ago
password=$(cat $mw_path/data/default.pl)
if [ -f $mw_path/data/domain.conf ];then
address=$(cat $mw_path/data/domain.conf)
fi
if [ -f $mw_path/data/admin_path.pl ];then
auth_path=$(cat $mw_path/data/admin_path.pl)
fi
3 years ago
if [ "$address" = "" ];then
3 years ago
v4=$(python3 $mw_path/tools.py getServerIp 4)
v6=$(python3 $mw_path/tools.py getServerIp 6)
3 years ago
if [ "$v4" != "" ] && [ "$v6" != "" ]; then
address="MW-Panel-Url-Ipv4: http://$v4:$port$auth_path \nMW-Panel-Url-Ipv6: http://[$v6]:$port$auth_path"
3 years ago
elif [ "$v4" != "" ]; then
3 years ago
address="MW-Panel-Url: http://$v4:$port$auth_path"
3 years ago
elif [ "$v6" != "" ]; then
3 years ago
echo 'True' > $mw_path/data/ipv6.pl
3 years ago
address="MW-Panel-Url: http://[$v6]:$port$auth_path"
else
3 years ago
address="MW-Panel-Url: http://you-network-ip:$port$auth_path"
3 years ago
fi
else
address="MW-Panel-Url: http://$address:$port$auth_path"
3 years ago
fi
3 years ago
3 years ago
show_panel_ip="$port|"
6 years ago
echo -e "=================================================================="
echo -e "\033[32mMW-Panel default info!\033[0m"
echo -e "=================================================================="
3 years ago
echo -e "$address"
4 years ago
echo -e `python3 $mw_path/tools.py username`
6 years ago
echo -e "password: $password"
echo -e "\033[33mWarning:\033[0m"
3 years ago
echo -e "\033[33mIf you cannot access the panel. \033[0m"
echo -e "\033[33mrelease the following port (${show_panel_ip}888|80|443|22) in the security group.\033[0m"
6 years ago
echo -e "=================================================================="
;;
3 years ago
esac