Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Python module to open a unix socket to dump all threads' stack traces when read

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 example
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rst
Octocat-spinner-32 setup.py
Octocat-spinner-32 socketconsole.py
README.rst

socketconsole https://github.com/robotadam/socketconsole (c) 2011 Adam Lowry

About

socketconsole.py is just a simple library to provide stacktraces via UNIX sockets. Handy for investigating running daemons.

Installation

Requires CPython 2 or 3 (PyPy lacks sys._current_frames)

$ python setup.py install

Or copy the socketconsole.py file into your project.

Not compatible with gevent (won't crash; produces useless output).

Usage

Daemon

In your daemon:

import socketconsole
# Stores socket files in $TMPDIR/$TEMP/$TMP or /tmp
socketconsole.launch()
# ...or specify where to store socket file
socketconsole.launch(path='some/custom/path')

Command Line

From the command line:

$ # Looks in $TMPDIR/$TEMP/$TMP or /tmp
$ socketreader
$ # ... or specify where socket files are
$ socketreader some/custom/path
$ # Or you can run socketconsole.py directly
$ python socketconsole.py some/custom/path

Cleaning Stale Files

It's not uncommon for processes to leave behind socket files (eg if the process dies unexpectedly). socketreader includes a clean option which conservatively cleans up these stale files. It won't kill socket files for PIDs which are alive, so feel free to run it at any time:

$ # For safety, the clean option requires you pass a path
$ socketreader /tmp clean
...
Something went wrong with that request. Please try again.