##// END OF EJS Templates
doc: fix mistake about matching against directories in "pattern.txt"...
doc: fix mistake about matching against directories in "pattern.txt" This fixes mistake of documentation about matching against directories in "pattern.txt" introduced by 50db996bccaf. ".hgignore" treats specified "glob:" pattern as same as one specified for "-X" option: it can match against directories, too. For reference, extra regexp string appended to specified pattern for each types are listed below: see also "match.match()" and "match._regex()" for detail. ============= ========== =============== type cmdline -I/-X ============= ========== =============== glob/relglob '$' '(?:/|$)' path/relpath '(?:/|$)' '(?:/|$)' re/relre (none) (none) ============= ========== =============== Appending '$' means that the specified pattern should match against only files.

File last commit:

r17466:d5a3bda6 default
r20329:45f23b1f stable
Show More
killdaemons.py
54 lines | 1.5 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
import os, sys, time, errno, signal
if os.name =='nt':
import ctypes
def kill(pid, logfn, tryhard=True):
logfn('# Killing daemon process %d' % pid)
PROCESS_TERMINATE = 1
handle = ctypes.windll.kernel32.OpenProcess(
PROCESS_TERMINATE, False, pid)
ctypes.windll.kernel32.TerminateProcess(handle, -1)
ctypes.windll.kernel32.CloseHandle(handle)
else:
def kill(pid, logfn, tryhard=True):
try:
os.kill(pid, 0)
logfn('# Killing daemon process %d' % pid)
os.kill(pid, signal.SIGTERM)
if tryhard:
for i in range(10):
time.sleep(0.05)
os.kill(pid, 0)
else:
time.sleep(0.1)
os.kill(pid, 0)
logfn('# Daemon process %d is stuck - really killing it' % pid)
os.kill(pid, signal.SIGKILL)
except OSError, err:
if err.errno != errno.ESRCH:
raise
def killdaemons(pidfile, tryhard=True, remove=False, logfn=None):
if not logfn:
logfn = lambda s: s
# Kill off any leftover daemon processes
try:
fp = open(pidfile)
for line in fp:
try:
pid = int(line)
except ValueError:
continue
kill(pid, logfn, tryhard)
fp.close()
if remove:
os.unlink(pidfile)
except IOError:
pass
if __name__ == '__main__':
path, = sys.argv[1:]
killdaemons(path)