【发布时间】:2023-08-28 00:49:01
【问题描述】:
我正在尝试从 Python 执行一个以 ipaddress 作为参数的 shellscript,
我正在使用以下命令,但出现错误,我需要以 Sudo 用户身份执行此 shellscript..
错误:-
[root@linuxhost web]# python test.py
29575
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user
name|#uid]
process = subprocess.Popen(['sudo','/usr/local/bin/test.sh','127.0.0.1'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
process.wait()
我尝试通过使用 sudo 直接调用来调用 shellscript,但仍然失败..
process = subprocess.Popen(['sudo /usr/local/bin/test.sh','127.0.0.1'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
【问题讨论】:
-
尝试 sudo python test.py(并从脚本中删除 sudo)
-
有时脚本询问root密码而不是失败并要求用户重新运行脚本很方便。
-
不相关:除非您使用管道,否则不要使用
subprocess.PIPE。它可能会停止子进程。