Esse comando precisa de recursos de shell, incluindo substituição de comandos e pipes, portanto, você deve usar shell=True
na sua chamada subprocess.call()
. Ele deve funcionar bem, desde que você o esteja executando em um shell. Então:
from subprocess import call
call("kill -9 $(ps -ef | grep java | grep TaskTracker | awk '{print $2}')",
shell=True)