1

When i try to execute a command with subprocess.Popen. I am getting this error;

In [3]: subprocess.Popen(["su - dhclient","eth0"])
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
/home/oae/<ipython-input-3-1cd768a39571> in <module>()
----> 1 subprocess.Popen(["su - dhclient","eth0"])

/usr/lib/python2.7/subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    677                             p2cread, p2cwrite,
    678                             c2pread, c2pwrite,
--> 679                             errread, errwrite)
    680 
    681         if mswindows:

/usr/lib/python2.7/subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
   1247                     if fd is not None:
   1248                         os.close(fd)
-> 1249                 raise child_exception
   1250 
   1251 

OSError: [Errno 2] No such file or directory

How can i fix this? Thanks.

0

1 Answer 1

2

You can use:

subprocess.Popen("su - dhclient eth0", shell=True)
Sign up to request clarification or add additional context in comments.

1 Comment

shell=True is generally frowned upon as a security issue so don't over use it. It is, however, the correct way to do it in this case.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.