本文整理汇总了Python中neutron.agent.linux.utils.find_child_pids函数的典型用法代码示例。如果您正苦于以下问题:Python find_child_pids函数的具体用法?Python find_child_pids怎么用?Python find_child_pids使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了find_child_pids函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _get_pid_to_kill
def _get_pid_to_kill(self):
pid = self._process.pid
# If root helper was used, two or more processes will be created:
#
# - a root helper process (e.g. sudo myscript)
# - possibly a rootwrap script (e.g. neutron-rootwrap)
# - a child process (e.g. myscript)
#
# Killing the root helper process will leave the child process
# running, re-parented to init, so the only way to ensure that both
# die is to target the child process directly.
if self.root_helper:
try:
pid = utils.find_child_pids(pid)[0]
except IndexError:
# Process is already dead
return None
while True:
try:
# We shouldn't have more than one child per process
# so keep getting the children of the first one
pid = utils.find_child_pids(pid)[0]
except IndexError:
# Last process in the tree, return it
break
return pid
开发者ID:Taejun,项目名称:neutron,代码行数:26,代码来源:async_process.py
示例2: test_returns_list_of_child_process_ids_recursively
def test_returns_list_of_child_process_ids_recursively(self):
with mock.patch.object(utils, 'execute',
side_effect=[' 123 \n 185\n',
' 40 \n', '\n',
'41\n', '\n']):
actual = utils.find_child_pids(-1, True)
self.assertEqual(actual, ['123', '185', '40', '41'])
开发者ID:openstack,项目名称:neutron,代码行数:7,代码来源:test_utils.py
示例3: _kill_listen_processes
def _kill_listen_processes(namespace, force=False):
"""Identify all listening processes within the given namespace.
Then, for each one, find its top parent with same cmdline (in case this
process forked) and issue a SIGTERM to all of them. If force is True,
then a SIGKILL will be issued to all parents and all their children. Also,
this function returns the number of listening processes.
"""
pids = find_listen_pids_namespace(namespace)
pids_to_kill = {utils.find_fork_top_parent(pid) for pid in pids}
kill_signal = signal.SIGTERM
if force:
kill_signal = signal.SIGKILL
children = [utils.find_child_pids(pid, True) for pid in pids_to_kill]
pids_to_kill.update(itertools.chain.from_iterable(children))
for pid in pids_to_kill:
# Throw a warning since this particular cleanup may need a specific
# implementation in the right module. Ideally, netns_cleanup wouldn't
# kill any processes as the responsible module should've killed them
# before cleaning up the namespace
LOG.warning("Killing (%(signal)d) [%(pid)s] %(cmdline)s",
{'signal': kill_signal,
'pid': pid,
'cmdline': ' '.join(utils.get_cmdline_from_pid(pid))[:80]
})
try:
utils.kill_process(pid, kill_signal, run_as_root=True)
except Exception as ex:
LOG.error('An error occurred while killing '
'[%(pid)s]: %(msg)s', {'pid': pid, 'msg': ex})
return len(pids)
开发者ID:igordcard,项目名称:neutron,代码行数:32,代码来源:netns_cleanup.py
示例4: _get_pid_to_kill
def _get_pid_to_kill(self):
pid = self._process.pid
# If root helper was used, two processes will be created:
#
# - a root helper process (e.g. sudo myscript)
# - a child process (e.g. myscript)
#
# Killing the root helper process will leave the child process
# as a zombie, so the only way to ensure that both die is to
# target the child process directly.
if self.root_helper:
pids = utils.find_child_pids(pid)
if pids:
# The root helper will only ever launch a single child.
pid = pids[0]
else:
# Process is already dead.
pid = None
return pid
开发者ID:JoeMido,项目名称:neutron,代码行数:19,代码来源:async_process.py
示例5: test_raises_unknown_exception
def test_raises_unknown_exception(self):
with testtools.ExpectedException(RuntimeError):
with mock.patch.object(utils, 'execute',
side_effect=RuntimeError()):
utils.find_child_pids(-1)
开发者ID:bradleyjones,项目名称:neutron,代码行数:5,代码来源:test_utils.py
示例6: test_returns_list_of_child_process_ids_for_good_ouput
def test_returns_list_of_child_process_ids_for_good_ouput(self):
with mock.patch.object(utils, 'execute', return_value=' 123 \n 185\n'):
self.assertEqual(utils.find_child_pids(-1), ['123', '185'])
开发者ID:bradleyjones,项目名称:neutron,代码行数:3,代码来源:test_utils.py
示例7: test_returns_empty_list_for_no_output
def test_returns_empty_list_for_no_output(self):
with mock.patch.object(utils, 'execute', return_value=''):
self.assertEqual(utils.find_child_pids(-1), [])
开发者ID:bradleyjones,项目名称:neutron,代码行数:3,代码来源:test_utils.py
示例8: test_returns_empty_list_for_exit_code_1
def test_returns_empty_list_for_exit_code_1(self):
with mock.patch.object(utils, 'execute',
side_effect=RuntimeError('Exit code: 1')):
self.assertEqual(utils.find_child_pids(-1), [])
开发者ID:bradleyjones,项目名称:neutron,代码行数:4,代码来源:test_utils.py
示例9: test_returns_empty_list_for_exit_code_1
def test_returns_empty_list_for_exit_code_1(self):
with mock.patch.object(utils, 'execute',
side_effect=exceptions.ProcessExecutionError(
'', returncode=1)):
self.assertEqual([], utils.find_child_pids(-1))
开发者ID:openstack,项目名称:neutron,代码行数:5,代码来源:test_utils.py
示例10: test_returns_empty_list_for_no_output
def test_returns_empty_list_for_no_output(self):
with mock.patch.object(utils, "execute", return_value=""):
self.assertEqual([], utils.find_child_pids(-1))
开发者ID:openstack,项目名称:neutron,代码行数:3,代码来源:test_utils.py
注:本文中的neutron.agent.linux.utils.find_child_pids函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论