File: //proc/self/root/usr/lib/python2.7/site-packages/salt/states/process.py
# -*- coding: utf-8 -*-
'''
Process Management
==================
Ensure a process matching a given pattern is absent.
.. code-block:: yaml
httpd-absent:
process.absent:
- name: apache2
'''
from __future__ import absolute_import, unicode_literals, print_function
def __virtual__():
return 'ps.pkill' in __salt__
def absent(name, user=None, signal=None):
'''
Ensures that the named command is not running.
name
The pattern to match.
user
The user to which the process belongs
signal
Signal to send to the process(es).
'''
ret = {'name': name,
'changes': {},
'result': False,
'comment': ''}
if __opts__['test']:
running = __salt__['ps.pgrep'](name, user=user)
ret['result'] = None
if running:
ret['comment'] = ('{0} processes will '
'be killed').format(len(running))
else:
ret['comment'] = 'No matching processes running'
return ret
if signal:
status = __salt__['ps.pkill'](name, user=user,
signal=signal, full=True)
else:
status = __salt__['ps.pkill'](name, user=user, full=True)
ret['result'] = True
if status:
ret['comment'] = 'Killed {0} processes'.format(len(status['killed']))
ret['changes'] = status
else:
ret['comment'] = 'No matching processes running'
return ret