Show More
@@ -36,6 +36,7 b' from IPython.core.application import (' | |||||
36 | base_flags as base_ip_flags |
|
36 | base_flags as base_ip_flags | |
37 | ) |
|
37 | ) | |
38 | from IPython.utils.path import expand_path |
|
38 | from IPython.utils.path import expand_path | |
|
39 | from IPython.utils.process import check_pid | |||
39 | from IPython.utils import py3compat |
|
40 | from IPython.utils import py3compat | |
40 | from IPython.utils.py3compat import unicode_type |
|
41 | from IPython.utils.py3compat import unicode_type | |
41 |
|
42 | |||
@@ -249,28 +250,11 b' class BaseParallelApplication(BaseIPythonApplication):' | |||||
249 | raise PIDFileError('pid file not found: %s' % pid_file) |
|
250 | raise PIDFileError('pid file not found: %s' % pid_file) | |
250 |
|
251 | |||
251 | def check_pid(self, pid): |
|
252 | def check_pid(self, pid): | |
252 | if os.name == 'nt': |
|
|||
253 |
|
|
253 | try: | |
254 | import ctypes |
|
254 | return check_pid(pid) | |
255 | # returns 0 if no such process (of ours) exists |
|
|||
256 | # positive int otherwise |
|
|||
257 | p = ctypes.windll.kernel32.OpenProcess(1,0,pid) |
|
|||
258 |
|
|
255 | except Exception: | |
259 |
|
|
256 | self.log.warn( | |
260 |
|
|
257 | "Could not determine whether pid %i is running. " | |
261 |
|
|
258 | " Making the likely assumption that it is."%pid | |
262 |
|
|
259 | ) | |
263 |
|
|
260 | return True | |
264 | return bool(p) |
|
|||
265 | else: |
|
|||
266 | try: |
|
|||
267 | p = Popen(['ps','x'], stdout=PIPE, stderr=PIPE) |
|
|||
268 | output,_ = p.communicate() |
|
|||
269 | except OSError: |
|
|||
270 | self.log.warn( |
|
|||
271 | "Could not determine whether pid %i is running via `ps x`. " |
|
|||
272 | " Making the likely assumption that it is."%pid |
|
|||
273 | ) |
|
|||
274 | return True |
|
|||
275 | pids = list(map(int, re.findall(br'^\W*\d+', output, re.MULTILINE))) |
|
|||
276 | return pid in pids |
|
General Comments 0
You need to be logged in to leave comments.
Login now