aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2013-12-16 05:04:12 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2013-12-16 05:04:55 +0100
commite3946f989ea53c14fb7ae0afd29f80a74512a3a3 (patch)
tree2d497b9a173d5d738de7294af74a00ae16fc3c84
parent8863d0de91ee0b7f7bac28fe9b6ba27f986e656c (diff)
downloadyoutube-dl-e3946f989ea53c14fb7ae0afd29f80a74512a3a3.tar.xz
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__.py4
-rw-r--r--youtube_dl/utils.py15
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 '&amp;' in XML"""
return xml_str.replace(u'&', u'&amp;')
+
+
+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