From 0a25cf895fa70fedf64131d284cfff19251b3d46 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Mon, 10 Mar 2014 13:45:46 +0000 Subject: [PATCH] Stop trying to rename the daemon process * lib/mudpy/misc.py(daemonize): Remove the hacky process table entry rewriting routines. They weren't cross-platform and never really worked well. Also, these days admins are more used to daemons in interpreted languages and know how to spot them in a process list with relative ease. --- lib/mudpy/misc.py | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/lib/mudpy/misc.py b/lib/mudpy/misc.py index 96957bc..42d14c8 100644 --- a/lib/mudpy/misc.py +++ b/lib/mudpy/misc.py @@ -6,8 +6,6 @@ # terms provided in the LICENSE file distributed with this software. import codecs -import ctypes -import ctypes.util import os import random import re @@ -2399,48 +2397,6 @@ def daemonize(universe): # only if this is what we're configured to do if universe.contents["internal:process"].getboolean("daemon"): - # if possible, we want to rename the process to the same as the script - new_argv = b"\x00".join(x.encode("utf-8") for x in sys.argv) + b"\x00" - short_argv0 = os.path.basename(sys.argv[0]).encode("utf-8") + b"\x00" - - # attempt the linux way first - try: - argv_array = ctypes.POINTER(ctypes.c_char_p) - ctypes.pythonapi.Py_GetArgcArgv.argtypes = ( - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(argv_array) - ) - argc = argv_array() - ctypes.pythonapi.Py_GetArgcArgv( - ctypes.c_int(0), - ctypes.pointer(argc) - ) - old_argv0_size = len(argc.contents.value) - ctypes.memset(argc.contents, 0, len(new_argv) + old_argv0_size) - ctypes.memmove(argc.contents, new_argv, len(new_argv)) - ctypes.CDLL(ctypes.util.find_library("c")).prctl( - 15, - short_argv0, - 0, - 0, - 0 - ) - - except: - - # since that failed, maybe it's bsd? - try: - - # much simpler, since bsd has a libc function call for this - ctypes.CDLL(ctypes.util.find_library("c")).setproctitle( - new_argv - ) - - except: - - # that didn't work either, so just log that we couldn't - log("Failed to rename the interpreter process (cosmetic).") - # log before we start forking around, so the terminal gets the message log("Disassociating from the controlling terminal.") -- 2.11.0