diff options
author | Philipp Hagemeister <[email protected]> | 2013-12-16 05:04:12 +0100 |
---|---|---|
committer | Philipp Hagemeister <[email protected]> | 2013-12-16 05:04:55 +0100 |
commit | e3946f989ea53c14fb7ae0afd29f80a74512a3a3 (patch) | |
tree | 2d497b9a173d5d738de7294af74a00ae16fc3c84 | |
parent | 8863d0de91ee0b7f7bac28fe9b6ba27f986e656c (diff) | |
download | youtube-dl-e3946f989ea53c14fb7ae0afd29f80a74512a3a3.tar.gz youtube-dl-e3946f989ea53c14fb7ae0afd29f80a74512a3a3.zip |
Set process title to youtube-dl
This allows killing all youtube-dl processes with killall youtube-dl, and shows up nicer in some programs.
-rw-r--r-- | youtube_dl/__init__.py | 4 | ||||
-rw-r--r-- | youtube_dl/utils.py | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index d5c0a3643..09a99f0db 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -62,6 +62,7 @@ from .utils import ( MaxDownloadsReached, preferredencoding, SameFileError, + setproctitle, std_headers, write_string, ) @@ -471,12 +472,15 @@ def parseOpts(overrideArguments=None): return parser, opts, args + def _real_main(argv=None): # Compatibility fixes for Windows if sys.platform == 'win32': # https://github.com/rg3/youtube-dl/issues/820 codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None) + setproctitle(u'youtube-dl') + parser, opts, args = parseOpts(argv) # Set user agent diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 4e8a84a56..bd46a2da2 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import ctypes import datetime import email.utils import errno @@ -1062,3 +1063,17 @@ def month_by_name(name): def fix_xml_all_ampersand(xml_str): """Replace all the '&' by '&' in XML""" return xml_str.replace(u'&', u'&') + + +def setproctitle(title): + try: + libc = ctypes.cdll.LoadLibrary("libc.so.6") + except OSError: + return + title = title + buf = ctypes.create_string_buffer(len(title) + 1) + buf.value = title + try: + libc.prctl(15, ctypes.byref(buf), 0, 0, 0) + except AttributeError: + return # Strange libc, just skip this |