Linux创建 .sh 服务器启动脚本

  

vi startProject.sh

下面直接复制,只需要修改标红的4点即可

 1 jar_name=demo-0.0.1-SNAPSHOT.jar
 2 jar_path=/app/project/script/
 3 log_path=/app/project/log/`date +%y-%m-%d`_out.log
 4 #指向自定义jdk
 5 #export JAVA_HOME=/app/jdk1.8.0_251
 6 #export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 7 #export PATH=$JAVA_HOME/bin:$PATH
 8 stop() {
 9   echo ""
10   pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
11   if [ -z $pid ]; then # -z 是判断是否为空
12     echo "${jar_name}未运行!"
13   else
14     echo "准备关闭进程$pid"
15     kill -9 $pid
16     sleep 0.5
17     echo "${jar_name}已关闭!"
18   fi
19   echo ""
20 }
21 
22 start() {
23   echo ""
24   pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
25   if [ -z $pid ]; then
26     cd $jar_path  # 这里转到jar包目录执行命令,是为了使用jar_path下的config文件,貌似java程序只能识别当前执行命令目录下的配置,否则就是使用已打入Jar包的配置文件。
27     nohup java -jar $jar_name >$log_path 2>&1 &
28     pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
29     echo "应用 ${jar_name}启动成功,pid=${pid}"
30     # tail -f $log_path
31  
32   else
33     echo "应用 ${jar_name} 正在运行,pid = ${pid}"
34   fi
35   echo ""
36 }
37 
38 status() {
39   echo ""
40   pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
41   if [ -z $pid ]; then
42     echo "应用 ${jar_name} 未运行"
43   else
44     echo "应用 ${jar_name} 正在运行,pid = ${pid}"
45   fi
46   echo ""
47 
48 }
49 restart() {
50   stop
51 
52   sleep 2
53   echo "停止完成,准备启动jar包"
54   start
55 }
56 action() {
57   echo "请输入数字选择要执行的操作:1=启动,2=重启,3=停止,4=查看运行状态,5=退出"
58   echo '你输入的数字为:'
59   read a
60   case $a in
61   "1")
62     start
63     ;;
64   "2")
65     restart
66     ;;
67   "3")
68     stop
69     ;;
70   "4")
71     status
72     ;;
73   "5")
74     exit 1
75     ;;
76   *)
77     echo "输入错误,请重新输入"
78     action
79     ;;
80   esac
81 }
82 action

添加可执行权限

 1 chmod 700 startProject.sh 

执行

 1 ./startProject.sh 

 

演示:

 

posted @ 2023-05-19 14:10  勤快的懒羊羊  阅读(255)  评论(0编辑  收藏  举报