如何运行bash';tc&x27;python中的命令?

如何运行bash';tc&x27;python中的命令?,python,linux,trafficshaping,Python,Linux,Trafficshaping,我想使用Python对Linux内核进行流量控制,以模拟丢失、损坏和重复的包。我已经能够用Linux终端配置它,但我必须使用python bash cmd的工作原理: tc filter show dev eth1 python不起作用: >>> subprocess.call(["tc", "filter", "show", "dev", "eth1"]) Traceback (most recent call last): File "<stdin>",

我想使用Python对Linux内核进行流量控制,以模拟丢失、损坏和重复的包。我已经能够用Linux终端配置它,但我必须使用python

bash cmd的工作原理:

tc filter show dev eth1
python不起作用:

>>> subprocess.call(["tc", "filter", "show", "dev", "eth1"])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/subprocess.py", line 470, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
子流程调用([“tc”、“筛选器”、“显示”、“开发”、“eth1]”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/lib/python2.6/subprocess.py”,第470行,在调用中 返回Popen(*popenargs,**kwargs)。等待() 文件“/usr/lib/python2.6/subprocess.py”,第623行,在__ 错误读取,错误写入) 文件“/usr/lib/python2.6/subprocess.py”,第1141行,在执行子进程中 引发子对象异常 OSError:[Errno 2]没有这样的文件或目录
谢谢。

python子进程不知道您的shell环境。因此,请提供命令的绝对路径,例如:

subprocess.call(["/sbin/tc", "filter", "show", "dev", "eth1"])

使用命令
查找shell中哪个tc
的确切位置

python子流程不知道您的shell环境。因此,请提供命令的绝对路径,例如:

subprocess.call(["/sbin/tc", "filter", "show", "dev", "eth1"])

使用命令
查找shell中哪个tc
的确切位置

python子流程不知道您的shell环境。因此,请提供命令的绝对路径,例如:

subprocess.call(["/sbin/tc", "filter", "show", "dev", "eth1"])

使用命令
查找shell中哪个tc
的确切位置

python子流程不知道您的shell环境。因此,请提供命令的绝对路径,例如:

subprocess.call(["/sbin/tc", "filter", "show", "dev", "eth1"])

使用命令
查找shell中哪个tc
的确切位置

如果不需要任何特殊控件,基本方法是使用
os.system()
启动命令,就像在shell命令行中一样(如果在$path中,则无需指定完整路径):

这应该与您在cmd中所做的完全相同:

$ tc filter show dev eth1

如果不需要任何特殊控件,基本方法是使用
os.system()
启动命令,就像在shell命令行中一样(如果在$path中,则无需指定完整路径):

这应该与您在cmd中所做的完全相同:

$ tc filter show dev eth1

如果不需要任何特殊控件,基本方法是使用
os.system()
启动命令,就像在shell命令行中一样(如果在$path中,则无需指定完整路径):

这应该与您在cmd中所做的完全相同:

$ tc filter show dev eth1

如果不需要任何特殊控件,基本方法是使用
os.system()
启动命令,就像在shell命令行中一样(如果在$path中,则无需指定完整路径):

这应该与您在cmd中所做的完全相同:

$ tc filter show dev eth1


对我有用。你确定你的
路径中有
tc
吗?为
tc
提供完整路径吗?如果没有,它在终端中能工作吗?谢谢,你说得对。对我有用。你确定你的
路径中有
tc
吗?为
tc
提供完整路径吗?如果没有,它在终端中能工作吗?谢谢,你说得对。对我有用。你确定你的
路径中有
tc
吗?为
tc
提供完整路径吗?如果没有,它在终端中能工作吗?谢谢,你说得对。对我有用。你确定你的
tc
路径中有
tc
吗?为
tc
提供完整路径吗?如果没有,它在终端中会工作吗?谢谢,你是对的。那根本不是真的@签出路径中可能没有
/sbin
。如果它在那里,调用将工作,而不必添加完整路径。不过,这是明智的。还值得一提的是,您应该使用具有运行
tc
命令所需权限的同一用户来运行Python。事实并非如此@签出路径中可能没有
/sbin
。如果它在那里,调用将工作,而不必添加完整路径。不过,这是明智的。还值得一提的是,您应该使用具有运行
tc
命令所需权限的同一用户来运行Python。事实并非如此@签出路径中可能没有
/sbin
。如果它在那里,调用将工作,而不必添加完整路径。不过,这是明智的。还值得一提的是,您应该使用具有运行
tc
命令所需权限的同一用户来运行Python。事实并非如此@签出路径中可能没有
/sbin
。如果它在那里,调用将工作,而不必添加完整路径。不过,这是明智的。还值得一提的是,您应该使用具有运行
tc
命令所需权限的同一用户运行Python。这将删除
子进程提供的错误检查。它有什么好处?我不一定推荐使用
os.system
。但在特定的基本需求中,它可能比使用具有更多参数的命令(如
shell=True
)更有趣,以获得上下文的好处,…这样就消除了
子流程提供的错误检查。它有什么好处?我不一定推荐使用
os.system
。但在特定的基本需求中,它可能比使用具有更多参数的命令(如
shell=True
)更有趣,以获得上下文的好处,…这样就消除了
子流程提供的错误检查。它有什么好处?我不一定推荐使用
os.system
。但在特定的基本需求中,它可能比使用具有更多参数的命令(如
shell=True
)更有趣,以获得上下文的好处,…这样就消除了
子流程提供的错误检查。它有什么好处?我不一定推荐使用
os.system
。但特别是基本需求,它可能更有趣