#!/bin/bash
cmd_bin="java | python |node | shell"
cmd_bin_option=""
app_path="java.jar | app.py |index.js | shell.sh"
app_port=5000
run_app() {
pid=$(ss -ntlp | grep $app_port | awk '{print $6}' | awk -F'=' '{print $2}' | awk -F',' '{print $1}')
if [ -z "$pid" ]; then
nohup $cmd_bin $cmd_bin_option $app_path $app_port > log.log 2>&1 &
echo "启动成功"
else
echo "程序已经运行,pid=$pid)"
fi
}
stop_app() {
pid=$(ss -ntlp | grep $app_port | awk '{print $6}' | awk -F'=' '{print $2}' | awk -F',' '{print $1}')
if [ -z "$pid" ]; then
echo "停止成功"
else
kill -15 "$pid"
echo "pid=$pid,停止成功"
fi
}
restart_app() {
stop_app
run_app
}
status_app() {
pid=$(ss -ntlp | grep $app_port | awk '{print $6}' | awk -F'=' '{print $2}' | awk -F',' '{print $1}')
if [ -z "$pid" ]; then
echo "程序未运行"
else
echo "app is running,pid=$pid"
fi
}
case $1 in
"run")
run_app
;;
"stop")
stop_app
;;
"restart")
restart_app
;;
"status")
status_app
;;
*)
echo 'You must select [ run | stop | restart | status ]'
;;
esac
通用程序部署脚本
发布时间 2023-03-22 21:16:27作者: 黄河大道东