예제 #1
0
def kill_child(child_name):
    """
    Search (by "pid") for DataHaven.NET child process with name `child_name` and tries to kill it.
    """
    killed = False
    for pid in dhnio.find_process([child_name+'.']): 
        dhnio.kill_process(pid)
        dhnio.Dprint(6, 'child_process.kill_child pid %d' % pid)
        killed = True
    return killed
예제 #2
0
def alive():
    global _CSpaceProcess
    if _CSpaceProcess is None:
        return False
    try:
        pid = _CSpaceProcess.pid
    except:
        return False
    if pid == 0:
        return False
    proclist = dhnio.find_process(['dhnet.'])
    if len(proclist) == 0:
        return False
    if pid not in proclist:
        return False 
    return True
예제 #3
0
def kill():
    global _CSpaceProcess
    if _CSpaceProcess is not None:
        try:
            _CSpaceProcess.signalProcess('KILL')
            # _CSpaceProcess.kill()
            dhnio.Dprint(6, 'transport_cspace.kill finished "dhnet" process')
        except:
            pass
    del _CSpaceProcess
    _CSpaceProcess = None
    killed = False
    for pid in dhnio.find_process(['dhnet.']): 
        dhnio.kill_process(pid)
        dhnio.Dprint(6, 'transport_cspace.kill pid %d' % pid)
        killed = True
    if killed:
        pidpath = getPIDpath()
        if os.path.isfile(pidpath):
            try:
                os.remove(pidpath)
                dhnio.Dprint(6, 'transport_cspace.kill %s removed' % pidpath)
            except:
                pass