bash脚本返回状态-13

问题描述 投票:0回答:1

场景:下面是两个脚本,其中python脚本调用bash脚本。

test.py

import subprocess
p=subprocess.call(['bash','test.sh'])
f = open("demofile2.txt", "a")
f.write(p)
f.close()

test.sh

echo "hello world"

观察:直接执行test.py时可以正常工作。

issue:当我在/ service下创建恶魔来运行文件时。 “ p”(通话返回)的值为-13。

注意:两个脚本的user:group都是root。我正在使用centos8

python bash centos subprocess
1个回答
0
投票

如果有人遇到相同的问题,答案就在于路径的解析。

当我在命令行中执行python脚本时,它能够找到该脚本。但是,当恶魔工具(甚至systemd)运行脚本时,它无法找到bash脚本。当我在python脚本中提供bash脚本的绝对路径(opt \ test \ test.sh)时,它起作用了。

\ opt \ test \ test.py

import subprocess
p=subprocess.call(['bash','opt\test\test.sh'])
f = open("demofile2.txt", "a")
f.write(p)
f.close()

\ opt \ test \ test.sh

echo "hello world"
© www.soinside.com 2019 - 2024. All rights reserved.