| # Copyright 2014 The Chromium OS Authors. All rights reserved. |
| # 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`).""" |
| |
| from __future__ import print_function |
| |
| import __main__ as main |
| import os |
| |
| # Import the relevant funcs into our namespace for callers. |
| try: |
| # pylint: disable=unused-import, no-name-in-module |
| from setproctitle import getproctitle, 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(main.__file__) |
| |
| |
| # 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)) |