Java 部署的时候可能依赖众多,一个Java -jar xxx.jar 还不行
所以程序员一般会写一个shell可执行文件给安装部署人员
比如run.sh 或者直接就是run stop restart
直接执行
./run
或者 ./run.sh
或者
sh ./run
或者
sh ./run.sh
都是等效的,因为Linu下都是文件,所以取得名字只是为了方便人员区分哒
那么文件内容是啥呢?
#!/bin/sh
MAINCLASS=xxx.Start
#!/bin/sh 是表示linux下执行,是一个sh文件,MAINCLASS就是一个变量,一般默认变量大写
if [ ! -n "$JAVA_HOME" ] ;then
echo "["`date "+%F %T"`"] 没有设置环境变量JAVA_HOME请设置后,在执行。" >> /var/log/xxx/xxx.log;
exit;
fi
关于if then fi格式如下:
if condition
then
command1
else
command2
fi
每个if都是fi结束才是完整的,then表示真的话要执行的,else就是假的话执行,fi结束
! 一般在shell脚本中表示取反
[] 这个叫条件表达式 简易版的if
-n 用于bai判断变量是否为空,注意只要有一个符号就不为空,空格也不行
-d directory意思 用于判断目录是否存在
echo "hello"打印出hello在控制台
exit;结束脚本
常见的样式:
PID=`ps -ef|grep java|grep -v grep|grep xxx|awk '{print $2}'`
if [ -n "$PID" ]; then
kill -9 $PID
fi
exit;
awk '{print $2}' 选择第二个参数,默认是空格分隔
ps -ef|grep xxx|grep -v grep|grep java|awk '{print $2}'|xargs kill -9
同样的 xargs是把前面的值作为参数传给后面的指令