Stop trying to rename the daemon process
authorJeremy Stanley <fungi@yuggoth.org>
Mon, 10 Mar 2014 13:45:46 +0000 (13:45 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Mon, 10 Mar 2014 13:45:46 +0000 (13:45 +0000)
* 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

index 96957bc..42d14c8 100644 (file)
@@ -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.")