Process in not get killed using subprocess.call() in python thread

Rhodri James rhodri at kynesim.co.uk
Thu Jul 13 12:09:29 EDT 2017


On 13/07/17 16:42, sanky8793 at gmail.com wrote:
> 
> I have created one thread in python, and that thread is running in infinite loop, but when I was trying to kill a process by making use of subprocess.call("my ps command") Its not actually working
> 
> Here is the code,
> 
> 
> 
> 
> import threading
> import subprocess
> 
> def B():
>      while True:
>          cmd="ps -ef | grep 'shell.py --server' | awk '{print $2}' | xargs kill -9"
>          subprocess.call(cmd, shell=True)
> 
> 
> def A():
>      th = threading.Thread(target=B)
>      th.start()
> 
> 
> 
> 
> 
> In above example, subprocess.call() getting executed but not actually killing the process that I want. If I executed command manually then its working fine, but in thread its not.

Have you tried checking the return code from subprocessor.call(), or 
sending the subprocess's stdout and stderr to file?  It's probably best 
if you don't run the thread in an infinite loop when you do that.  Why 
are you doing that anyway?

-- 
Rhodri James *-* Kynesim Ltd



More information about the Python-list mailing list