线上Linux执行Tomcat里的shell(startup.sh & shutdown.sh)脚本报错

1 篇文章 0 订阅
1 篇文章 0 订阅

线上Linux执行Tomcat里的shell(startup.sh & shutdown.sh & catalina.sh)脚本报错

最近一次线上迭代功能,重启tomcat,执行shutdown.sh报错:
-bash: ./version.sh: /bin/sh: bad interpreter: No such file or directory
,其他脚本同样

以下是排错过程:

1、查看是否为可执行文件

在这里插入图片描述
以上可以看出权限并没有什么问题,如果有文件为不可执行文件直接使用命令:

chmod 777 filename

2、查看文件格式是否正确

在这里插入图片描述
直接用vi或者vim命令打开文件,冒号加命令set ff 查看文件格式,结果如下图
在这里插入图片描述
说明我的格式也没有问题,如果读者有格式不是unix的,通过:
: set ff=unix 或者 : fileformat=unix来修改文件格式。
通过上面两个步骤其实并没有解决我的问题,而且我自己知道这两个步骤比较多余,因为在此之前我重启这个tomcat都没有什么问题,这是第一次出现,于是回想起近期这服务器上做的事情,然后想到之前要在这个服务器上跑一个爬虫项目,要用python3.0+,服务器自带的是2.6,自己手动升级了一下,除此之外并没有什么做其他操作。然后就进入了我第三步的排查。

3、自己手写shell脚本

我自己手动写了一个最简单的shell脚本

touch test.sh;
#脚本内容
#!/bin/bash
echo "hello world";#wq保存退出
#给刚写的脚本赋权限
chmod 777 test.sh;
#执行脚本
./test.sh;

命令结果如下图:
在这里插入图片描述

能准确输入hello world,说明脚本是可以执行的,于是在是查看startup.sh、shutdown.sh和catalina.sh文件,发现脚本的第一行和我写的不一样,重点来了
脚本第一行都是#!/bin/sh,而我自己写的是#!/bin/bash,我尝试将tomcat的脚本文件改成后者(#!/bin/bash),发现执行成功:
在这里插入图片描述
将三个脚本文件的第一行都改了以后,在执行脚本,就没有在报错了,tomcat正常停止、启动,到此我的问题解决,但是至于为什么导致的这个问题,花了一天还没有找到,因为开发任务较重,就暂时放下,以后有空会慢慢解决发现,如果内容有误,欢迎大家指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值