[PATCH] Use setproctitle in winbindd

Ralph Böhme slow at samba.org
Tue Jan 9 10:17:57 UTC 2018


Hi!

Looking at the process list on a Samba DC with all those accurately named samba
processes, I got jealous and wanted the same in winbindd as well.

Patch attached, already reviewed by Andreas, so I'm going to push later if noone
objects.

How does it look like? Eg:

root     31717  0.0  0.9 436076 20028 ?        Ss   Jan06   0:07 ./bin/winbindd -D
root     31724  0.0  0.7 316200 15152 ?        S    Jan06   0:01  \_ winbindd: domain child [TITAN]
root     31727  0.0  0.8 436080 18200 ?        S    Jan06   0:00  \_ winbindd: domain child [WDOM2]
root     31728  0.0  0.9 443576 19112 ?        S    Jan06   0:01  \_ winbindd: idmap child         
root     31729  0.0  0.4 309044  9004 ?        S    Jan06   0:01  \_ winbindd: domain child [BUILTIN]

-slow

-- 
Ralph Boehme, Samba Team       https://samba.org/
Samba Developer, SerNet GmbH   https://sernet.de/en/samba/
-------------- next part --------------
From 01761d6ee07fe159ec9c76803bbaa89f789fa133 Mon Sep 17 00:00:00 2001
From: Ralph Boehme <slow at samba.org>
Date: Wed, 20 Dec 2017 17:42:45 +0100
Subject: [PATCH] winbindd: use setproctitle

Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
---
 source3/winbindd/winbindd.c      | 4 ++++
 source3/winbindd/winbindd_cm.c   | 2 ++
 source3/winbindd/winbindd_dual.c | 6 ++++++
 3 files changed, 12 insertions(+)

diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index 460ee4b7ce4..74b240c5af3 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -508,6 +508,8 @@ static void winbind_msg_validate_cache(struct messaging_context *msg_ctx,
 	/* install default SIGCHLD handler: validation code uses fork/waitpid */
 	CatchSignal(SIGCHLD, SIG_DFL);
 
+	setproctitle("validate cache child");
+
 	ret = (uint8_t)winbindd_validate_cache_nobackup();
 	DEBUG(10, ("winbindd_msg_validata_cache: got return value %d\n", ret));
 	messaging_send_buf(msg_ctx, server_id, MSG_WINBIND_VALIDATE_CACHE, &ret,
@@ -1482,6 +1484,8 @@ int main(int argc, const char **argv)
 	NTSTATUS status;
 	bool ok;
 
+	setproctitle_init(argc, discard_const(argv), environ);
+
 	/*
 	 * Do this before any other talloc operation
 	 */
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
index 16836bd05b5..4d3a372dd25 100644
--- a/source3/winbindd/winbindd_cm.c
+++ b/source3/winbindd/winbindd_cm.c
@@ -256,6 +256,8 @@ static bool fork_child_dc_connect(struct winbindd_domain *domain)
 	}
 	SAFE_FREE(lfile);
 
+	setproctitle("dc-connect child");
+
 	mem_ctx = talloc_init("fork_child_dc_connect");
 	if (!mem_ctx) {
 		DEBUG(0,("talloc_init failed.\n"));
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index 3b25e53e786..a05644d2c34 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -1491,6 +1491,12 @@ static bool fork_domain_child(struct winbindd_child *child)
 		_exit(0);
 	}
 
+	if (child_domain != NULL) {
+		setproctitle("domain child [%s]", child_domain->name);
+	} else if (child == idmap_child()) {
+		setproctitle("idmap child");
+	}
+
 	/* Handle online/offline messages. */
 	messaging_register(server_messaging_context(), NULL,
 			   MSG_WINBIND_OFFLINE, child_msg_offline);
-- 
2.13.6



More information about the samba-technical mailing list