欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux下Java Python啟動管理腳本方便程序管理

 更新時間:2023年11月27日 08:58:16   作者:chenglei1208  
這篇文章主要為大家介紹了Linux下Java/Python啟動管理腳本方便程序管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

分享一個從網(wǎng)絡(luò)上搜集到的Java/Python管理腳本,方便在Linux操作系統(tǒng)下管理你的Java或Python應(yīng)用程序,只需要對其進行稍加修改即可投入生產(chǎn)使用。

建議將腳本修改為startup.sh,并賦予可執(zhí)行權(quán)限:

chmod +x startup.sh

下面是完成的腳本:

1.Java啟動腳本

在腳本中修改JAVA_HOME變量的地址及SERVICE_NAME中jar包的名稱,將啟動腳本與jar包置于同一目錄下即可。

#!/bin/bash
#網(wǎng)址: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 "你可以使用如下參數(shù)進行操作"
        echo "start  -啟動當前項目"
        echo "stop  -停止當前項目"
        echo "restart -重啟當前項目" 
        echo ""
        echo "-------------------------------------"
        ;;
esac
exit 0

啟動命令:

./startup.sh start

停止命令:

./startup.sh stop

重啟命令:

./startup.sh restart

2.python啟動腳本

同樣的方式,定義項目使用的虛擬環(huán)境地址venvPath,在啟動項目時會激活虛擬環(huán)境來運行python腳本。如果您沒有使用虛擬環(huán)境,可根據(jù)需求注釋虛擬環(huán)境相關(guān)腳本。

#!/bin/bash
#網(wǎng)址:aaa.al
# 服務(wù)配置
# python 項目使用的虛擬環(huán)境路徑
venvPath="/home/ops/add_missing_room_detail/py36"
# python 項目的路徑
projectPath="/home/ops/add_missing_room_detail/HotelGo2DelonixPmx"
# python 項目啟動命令
CMD="python fix_missing_rates.py"
# 啟動進程函數(shù)
start_process() {
  # 判斷進程是否已經(jīng)在運行,如果已經(jīng)在運行則不需要重復(fù)啟動
  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虛擬環(huán)境
  echo "activate python venv3  $venvPath"
  source $venvPath"/bin/activate"
  cd $projectPath
  # 后臺運行執(zhí)行命令,將日志輸出到文件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
}
# 停止進程函數(shù)
stop_process() {
  # 根據(jù)進程名過濾出進程id,并結(jié)束進程
  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
}
# 根據(jù)傳入?yún)?shù)執(zhí)行對應(yīng)的操作
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啟動管理腳本方便程序管理的詳細內(nèi)容,更多關(guān)于Linux啟動JavaPython管理腳本的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)

    搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)

    這篇文章主要為大家介紹了搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)的基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Eclipse新建項目不可選擇Java Project問題解決方案

    Eclipse新建項目不可選擇Java Project問題解決方案

    這篇文章主要介紹了Eclipse新建項目不可選擇Java Project問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java Calendar類的使用總結(jié)實例

    Java Calendar類的使用總結(jié)實例

    這篇文章主要介紹了Java Calendar類的使用總結(jié)實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java 通過cmd 調(diào)用命令啟動tomcat的操作

    java 通過cmd 調(diào)用命令啟動tomcat的操作

    這篇文章主要介紹了java 通過cmd 調(diào)用命令啟動tomcat的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 淺談JVM中的JOL

    淺談JVM中的JOL

    我們天天都在使用java來new對象,但估計很少有人知道new出來的對象到底長的什么樣子?對于普通的java程序員來說,可能從來沒有考慮過java中對象的問題,不懂這些也可以寫好代碼。今天,給大家介紹一款工具JOL,可以滿足大家對java對象的所有想象。
    2021-06-06
  • Java創(chuàng)建數(shù)組的幾種方式總結(jié)

    Java創(chuàng)建數(shù)組的幾種方式總結(jié)

    下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • spring IOC中三種依賴注入方式

    spring IOC中三種依賴注入方式

    這篇文章主要介紹了spring IOC中三種依賴注入方式,Spring使用注入方式,為什么使用注入方式,這系列問題實際歸結(jié)起來就是一句話,Spring的注入和IoC(本人關(guān)于IoC的闡述)反轉(zhuǎn)控制是一回事
    2021-08-08
  • java  StringBuilder類的詳解及簡單實例

    java StringBuilder類的詳解及簡單實例

    這篇文章主要介紹了java StringBuilder類的詳解及簡單實例的相關(guān)資料,實現(xiàn)了StringBuilder類的追加、插入、替換、刪除等操作,需要的朋友可以參考下
    2017-08-08
  • 用java WebSocket做一個聊天室

    用java WebSocket做一個聊天室

    這篇文章主要為大家詳細介紹了用java WebSocket做一個聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • java如何將一個float型數(shù)的整數(shù)部分和小數(shù)分別輸出顯示

    java如何將一個float型數(shù)的整數(shù)部分和小數(shù)分別輸出顯示

    這篇文章主要介紹了java如何將一個float型數(shù)的整數(shù)部分和小數(shù)分別輸出顯示,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論