Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -313,6 +313,9 @@ def prefix_process_candidate(proc):
|
||||
# exact native foreground-service signature, after all runtime checks.
|
||||
if comm == 'apache2' and args == ['apache2', '-DFOREGROUND']:
|
||||
return False
|
||||
# GnuPG's non-dumpable smart-card helper, started by the user's agent.
|
||||
if comm == 'scdaemon' and args == ['scdaemon', '--multi-server']:
|
||||
return False
|
||||
# A readable native executable is conclusive; otherwise require an absolute
|
||||
# Linux argv[0] corroborated by the kernel's (possibly truncated) comm name.
|
||||
if executable.startswith('/'):
|
||||
@@ -321,6 +324,15 @@ def prefix_process_candidate(proc):
|
||||
basename = Path(args[0]).name
|
||||
if comm and (comm == basename or comm == basename[:15]):
|
||||
return False
|
||||
# A confirmed zombie has already exited and cannot own an active Wine
|
||||
# prefix. Its empty cmdline/exe otherwise looks like an unclassified process.
|
||||
if not args and not executable:
|
||||
try:
|
||||
status = (proc/'status').read_text()
|
||||
except FileNotFoundError:
|
||||
status = ''
|
||||
if re.search(r'^State:\s+Z\s+\(zombie\)\s*$', status, re.M):
|
||||
return False
|
||||
argv0 = args[0] if args else ''
|
||||
refuse(f'Cannot classify possible Wine/runtime process {proc.name} (comm={comm!r}, argv0={argv0!r})')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user