
Jar脚本
1. 说明
示例jar包名称为
server2.jar
示例jar包所在路径
/usr/project_cs/server2
2. 关闭脚本
#!/bin/bash
# 查找server2.jar的进程ID
PID=$(ps -ef | grep 'server2.jar' | grep -v 'grep' | awk '{print $2}')
# 判断是否找到进程
if [ -z "$PID" ]; then
echo "server2.jar进程未运行"
else
echo "找到server2.jar进程,PID为: $PID"
# 杀掉该进程
kill -15 $PID
# 检查是否成功终止
if [ $? -eq 0 ]; then
echo "server2.jar进程已成功终止"
else
echo "无法终止server2.jar进程,请检查权限或其他问题"
fi
fi
3. 运行脚本
#!/bin/bash
# 获取当前时间,格式为 YYYYMMDDHHMMSS
CURRENT_TIME=$(date +"%Y%m%d%H%M%S")
# 切换到目标目录
cd /usr/project_cs/server2 || { echo "目录不存在,切换失败"; exit 1; }
# 检查 out.log 文件是否存在
if [ -f "out.log" ]; then
# 将原来的 out.log 重命名为 out_YYYYMMDDHHMMSS.log
mv out.log "out_$CURRENT_TIME.log"
echo "out.log 已重命名为 out_$CURRENT_TIME.log"
fi
# 启动 server2.jar 并将输出写入新的 out.log
nohup java -jar server2.jar >> out.log 2>&1 &
# 打印提示信息
if [ $? -eq 0 ]; then
echo "server2.jar 启动成功,日志写入 out.log"
else
echo "server2.jar 启动失败"
fi
4. 异常处理
4.1 字符异常
这个错误信息通常是由于脚本文件中的换行符格式不正确引起的。Windows 和 Unix/Linux 系统的换行符格式不同,Windows 使用的是 CRLF
(\r\n
),而 Unix/Linux 使用的是 LF
(\n
)。
当你在 Windows 上编写或复制脚本,然后将其上传到 Linux 服务器时,就会出现这种错误。
[root@localhost server2]# ./stop_server2.sh
-bash: ./stop_server2.sh: /bin/bash^M: bad interpreter: No such file or directory
解决方案
使用 vim
或其他文本编辑器打开脚本文件:
vim start_server2.sh
vim stop_server2.sh
在 vim
中输入以下命令将文件格式转换为 Unix 格式:
:set ff=unix
保存并退出:
:wq
4.2 运行权限
chmod +x start_server2.sh
chmod +x stop_server2.sh
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果