Changeset 1183:541b75eeb852 for pida/services/commander/commander.py
- Timestamp:
- 06/10/08 01:16:11 (6 months ago)
- Children:
- 1184:dcd452686e90, 1205:d23edbcf8747
- Files:
-
- 1 modified
-
pida/services/commander/commander.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pida/services/commander/commander.py
r1157 r1183 22 22 23 23 import os, subprocess 24 import pty 24 25 25 26 import gtk, gobject … … 284 285 self._vte_fork(commandargs, env, cwd) 285 286 286 def _python_fork_waiter(self, p open):287 exit_code = popen.wait()287 def _python_fork_waiter(self, pid): 288 stupid, exit_code = os.waitpid(pid, 0) 288 289 return exit_code 289 290 … … 299 300 env = dict(os.environ) 300 301 env['TERM'] = 'xterm' 301 (master, slave) = os.openpty()302 self.slave = slave303 self.master = master304 self._term.set_pty(master)305 p = subprocess.Popen(commandargs, stdin=slave, stdout=slave,306 preexec_fn=self._python_fork_preexec_fn,307 stderr=slave, env=env, cwd=cwd, close_fds=True)308 self._pid = p.pid309 t = AsyncTask(self._python_fork_waiter, self._python_fork_complete)310 t.start(p)302 pid, fd = pty.fork() 303 if pid: 304 self._term.set_pty(fd) 305 self._pid = pid 306 t = AsyncTask(self._python_fork_waiter, self._python_fork_complete) 307 t.start(pid) 308 else: 309 self._python_fork_preexec_fn() 310 os.chdir(cwd) 311 os.execvpe(commandargs[0], commandargs, env) 311 312 312 313 def _python_fork_parse(self, commandargs, env, cwd, parser_func):
