python脚本加斜杠执行和用python执行

问题场景

项目某个业务是将python脚本原封不动地下发到linux机器上,然后通过机器上open-falcon的agent模块调度执行脚本。结果查看生产环境的agent日志,发现agent调度执行脚本时报错了。

问题排查

先让运维在机器上手动执行,看下是否有问题

python 脚本名.py

发现没有问题,脚本运行正常。但是为什么agent调度执行就不行呢?
问同事才知道agent内部调度执行时,不是用上述命令跑的,而是

./脚本名.py

于是用该命令手动执行脚本,发现报的错和生产一样!虽然现在还不知道具体原因,但至少本地能重现了,从而方便我们找到问题。
最后对比了一下正常执行的脚本文件格式,发现出错的脚本文件头存在空行,如下

  • 正常的脚本
#!/usr/bin/env python
#coding:utf-8
  • 出错的脚本

#!/usr/bin/env python
#coding:utf-8

问题分析

通过./脚本名.py执行时,linux可能会把它当作普通shell执行,这时对格式有严格要求;而使用python 脚本名.py执行时,就没有这个限制。

问题解决

去掉文件头的空行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值