| # Copyright 2023 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Wrapper module for dealing with setting the process title (seen in `ps`).""" |
| |
| import os |
| |
| import __main__ as main |
| |
| |
| # Import the relevant funcs into our namespace for callers. |
| try: |
| # pylint: disable=unused-import, no-name-in-module |
| from setproctitle import getproctitle |
| from setproctitle import setproctitle |
| except ImportError: |
| # Module not available -> can't do anything. |
| getproctitle = lambda: None |
| setproctitle = lambda _x: None |
| |
| |
| # Used with the settitle helper below. |
| _SCRIPT_NAME = os.path.basename(getattr(main, "__file__", "chromite")) |
| |
| |
| # Used to distinguish between different runs. |
| _TITLE_PID = os.getpid() |
| |
| |
| def settitle(*args): |
| """Set the process title to something useful to make `ps` output easy.""" |
| base = ("%s/%s" % (_SCRIPT_NAME, _TITLE_PID),) |
| setproctitle(": ".join(base + args)) |