Linux 啓動腳本sh腳本

開發好的程序部署到linux上,製作一個.sh腳本自動執行。

 

#!/bin/bash
#這裏可替換爲你自己的執行程序,其他代碼無需更改
APP_NAME=myjavademo-0.0.1-SNAPSHOT.jar
 
#使用說明,用來提示輸入參數
usage() {
    echo "Usage: sh start.sh [start|stop|restart|status]"
    exit 1
}
 
#檢查程序是否在運行
is_exist() { 
    pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
    #如果不存在返回1,存在返回0
    if [ -z "${pid}" ]; then
      return 1
    else
      return 0
    fi
}
 
#啓動方法
start() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is already running. pid=${pid} ."
   else
     nohup java -jar $APP_NAME > /dev/null 2>&1 &
   fi
}
 
#停止方法
stop() {
   is_exist
   if [ $? -eq "0" ]; then
     kill -9 $pid
   else
     echo "${APP_NAME} is not running"
   fi
}
 
#輸出運行狀態
status() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is running. Pid is ${pid}"
   else
     echo "${APP_NAME} is not running."
   fi
}
 
#重啓
restart() {
   stop
   start
}
 
#根據輸入參數,選擇執行對應方法,不輸入則執行使用說明
case "$1" in
   "start")
     start
     ;;
   "stop")
     stop
     ;;
   "status")
     status
     ;;
   "restart")
     restart
     ;;
   *)
     usage
     ;;
esac

複製到start.sh,上傳到linux服務器,給執行權限

chmod +x start.sh

執行的命令如下:

  • 啓動 sh start.sh start
  • 停止 sh start.sh stop
  • 重啓 sh start.sh restart
  • 查看狀態 sh start.sh status

 

若出現以下錯誤:

start.sh: line 4: $'\r': command not found
start.sh: line 6: syntax error near unexpected token `$'{\r''
'tart.sh: line 6: `usage() {

轉一下格式:

sed -i 's/\r//g' strat.sh
txt文件複製到Linux格式化命令

或者使用nodpad++轉格式,右下角雙擊   Window(CR LF) 改爲  Unix(LF)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章