用于转储运行python进程的堆栈跟踪的实用程序
tipper的Python项目详细描述
翻斗车是一种小型实用工具,用于倾倒 python进程。
包含的模块在导入时安装signal handler 对于SIGUSR1。运行kill -SIGUSR1 [pid]将导致进程 将每个线程的当前堆栈跟踪转储到 $TMPDIR/tipper-[unixtimestamp]-[parentpid]-[pid].log。
翻车机也可以用作Django应用程序,尽管它没有 依赖于django本身。
需要Python2.5或更高版本。还支持Python3.x。
下载
- tipper-0.1.tar.gz(4kb,需要python 2.5-2.7或python 3.1)
用法
要进行试驾,请先安装翻斗:
$ pip install tipper
设置要检查的python进程:
$ cat > test.py <<EOF > import os, sys, time, tipper > sys.stdout.write('%s\n' % os.getpid()) > while True: > time.sleep(1) > EOF $ python test.py 945
然后发送SIGUSR1给它:
$ kill -SIGUSR1 945
最后应该在$TMPDIR中找到一个如下所示的文件:
$ cat "$TMPDIR/tipper-1292830152.19-681-945.log" Date: 2010-12-20 18:29:12.192733 Parent process ID: 681 Process ID: 945 Traceback (thread 140048470763264): File "test.py", line 4, in <module> time.sleep(1) Arguments: <module>() Local variables: {'__builtins__': <module '__builtin__' (built-in)>, '__doc__': None, '__file__': 'test.py', '__name__': '__main__', '__package__': None, 'os': <module 'os' from '/usr/lib/python2.6/os.pyc'>, 'sys': <module 'sys' (built-in)>, 'time': <module 'time' (built-in)>, 'tipper': <module 'tipper' from '/usr/local/lib/python2.6/dist-packages/tipper/__init__.py'>}
要更简要地概述日志,可以使用grep:
$ grep -v '^ \|^$' "$TMPDIR/tipper-1292830152.19-681-945.log" Date: 2010-12-20 18:29:12.192733 Parent process ID: 681 Process ID: 945 Traceback (thread 140048470763264): File "test.py", line 4, in <module> time.sleep(1)
新闻
版本0.1(2010年12月20日)
- 初次发布。