Portable process naming module

This commit is contained in:
Leo Vasanko 2023-11-21 15:20:49 +00:00
parent f0701b32f6
commit a65c03757d
2 changed files with 4 additions and 14 deletions

View File

@ -10,7 +10,7 @@ from urllib.parse import unquote
from wsgiref.handlers import format_date_time
import multiprocessing
import sys
from secproctitle import setproctitle
import brotli
import sanic.helpers
from blake3 import blake3
@ -33,24 +33,13 @@ app.blueprint(bp)
app.exception(Exception)(handle_sanic_exception)
def procname(name):
if sys.platform == "linux":
from ctypes import cdll, byref, create_string_buffer
newname = name.encode()
libc = cdll.LoadLibrary("libc.so.6")
buff = create_string_buffer(len(newname) + 1)
buff.value = newname
libc.prctl(15, byref(buff), 0, 0, 0)
procname("cista-main")
setproctitle("cista-main")
@app.before_server_start
async def main_start(app, loop):
config.load_config()
procname(f"cista {config.config.path.name}")
setproctitle(f"cista {config.config.path.name}")
N = max(2, min(8, cpu_count()))
app.ctx.threadexec = ThreadPoolExecutor(
max_workers=N, thread_name_prefix="cista-ioworker"

View File

@ -27,6 +27,7 @@ dependencies = [
"pyjwt",
"pymupdf",
"sanic",
"setproctitle",
"stream-zip",
"tomli_w",
]