blob: 6404df1c9156e69b017b7dc3cf12fa1735489de1 [file] [log] [blame]
# -*- coding: utf-8 -*-
# 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 os
import sys
import __main__ as main
# Import the relevant funcs into our namespace for callers.
# 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
assert sys.version_info >= (3, 6), 'This module requires Python 3.6+'
# 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))