出于某种奇怪的原因,当我使用以下命令运行python脚本时:subprocess.Popen(["nohup", "openvpn --config '/usr/local/etc/openvpn/pia_openvpn/AU Melbourne.ovpn'"])
我明白了nohup: failed to run command ‘openvpn --config '/usr/local/etc/openvpn/pia_openvpn/AU Melbourne.ovpn'’: No such file or directory
我可以不出错地运行openvpn --config "/usr/local/etc/openvpn/pia_openvpn/AU Melbourne.ovpn"
。我也试过运行其他命令并得到完全相同的错误。
最佳答案
您给了nohup
一个包含空格和引号的参数,但它找不到具有该名称的命令。拆分它,这样命令就openvpn
,还有两个参数(您可能会发现最后一个参数周围的额外引号也不应该存在)。有时这个工作留给shell来完成,就像system
函数一样,但一般来说风险更大(类似于SQL注入)而且效率低下(为一个琐碎的任务运行另一个进程)。
关于python - nohup:运行命令失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40948991/