Linux下Java Python启动管理脚本方便程序管理
作者:chenglei1208
这篇文章主要为大家介绍了Linux下Java/Python启动管理脚本方便程序管理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
引言
分享一个从网络上搜集到的Java/Python管理脚本,方便在Linux操作系统下管理你的Java或Python应用程序,只需要对其进行稍加修改即可投入生产使用。
建议将脚本修改为startup.sh,并赋予可执行权限:
chmod +x startup.sh
下面是完成的脚本:
1.Java启动脚本
在脚本中修改JAVA_HOME变量的地址及SERVICE_NAME中jar包的名称,将启动脚本与jar包置于同一目录下即可。
#!/bin/bash #网址:aaa.al export JAVA_HOME=/usr/local/jdk1.8.0_271 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:${JAVA_HOME}/lib ## service name SERVICE_ROOT=$(dirname $(dirname "$PWD")) SERVICE_DIR=$(cd $(dirname $0); pwd) SERVICE_NAME=test.jar JAR_NAME=$SERVICE_NAME\.jar PID=$SERVICE_NAME\.pid cd $SERVICE_DIR case "$1" in start) nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m -jar $JAR_NAME > $SERVICE_NAME.log 2>&1 & echo $! > $SERVICE_DIR/$PID echo "=== start $SERVICE_NAME" ;; stop) kill `cat $SERVICE_DIR/$PID` rm -rf $SERVICE_DIR/$PID echo "=== stop $SERVICE_NAME" sleep 5 P_ID=`ps -ef | grep "$SERVICE_NAME" | grep -v grep | grep -v "$0" | awk '{print $2}'` if [ "$P_ID" == "" ]; then echo "=== $SERVICE_NAME process not exists or stop success" else echo "=== $SERVICE_NAME process pid is:$P_ID" echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID" kill -9 $P_ID fi ;; restart) $0 stop sleep 2 $0 start echo "=== restart $SERVICE_NAME" ;; *) echo "-------------------------------------" echo "" echo "项目地址: ${SERVICE_DIR}/${JAR_NAME}" echo "" echo "你可以使用如下参数进行操作" echo "start -启动当前项目" echo "stop -停止当前项目" echo "restart -重启当前项目" echo "" echo "-------------------------------------" ;; esac exit 0
启动命令:
./startup.sh start
停止命令:
./startup.sh stop
重启命令:
./startup.sh restart
2.python启动脚本
同样的方式,定义项目使用的虚拟环境地址venvPath,在启动项目时会激活虚拟环境来运行python脚本。如果您没有使用虚拟环境,可根据需求注释虚拟环境相关脚本。
#!/bin/bash #网址:aaa.al # 服务配置 # python 项目使用的虚拟环境路径 venvPath="/home/ops/add_missing_room_detail/py36" # python 项目的路径 projectPath="/home/ops/add_missing_room_detail/HotelGo2DelonixPmx" # python 项目启动命令 CMD="python fix_missing_rates.py" # 启动进程函数 start_process() { # 判断进程是否已经在运行,如果已经在运行则不需要重复启动 start_pid=$(ps aux | grep "$CMD" | grep -v grep | awk '{print $2}') if [ -n "$start_pid" ]; then echo "The process is already running with PID:" $start_pid return 1 fi # 激活python虚拟环境 echo "activate python venv3 $venvPath" source $venvPath"/bin/activate" cd $projectPath # 后台运行执行命令,将日志输出到文件runoob.log nohup $CMD >runoob.log 2>&1 & start_pid=$! # 判断进程是否成功启动 if [ -z "$start_pid" ]; then echo "Fail to start process" return 1 else echo "The process has been started with PID:" $start_pid return 0 fi } # 停止进程函数 stop_process() { # 根据进程名过滤出进程id,并结束进程 start_pid=$(ps aux | grep "$CMD" | grep -v grep | awk '{print $2}') if [ -z "$start_pid" ]; then echo "No process to stop." return 1 else kill -9 $start_pid echo "The process has been stopped with PID:" $start_pid return 0 fi } # 根据传入参数执行对应的操作 case $1 in start) start_process ;; stop) stop_process ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac
启动项目:
./startup.sh start
停止项目:
./startup.sh stop
以上就是Linux下Java/Python启动管理脚本方便程序管理的详细内容,更多关于Linux启动JavaPython管理脚本的资料请关注脚本之家其它相关文章!