• Stars
    star
    1,012
  • Rank 45,431 (Top 0.9 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated almost 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Monitor the output of terminals and processes.

ispy

ispy is a python tool for monitoring the output of terminals and processes.

Demo

ispy watching a bash session that lists some files and opens vim:

ispy demo

The same thing, using strace:

strace watching writes demo

Installation

pip install ispy

Alternatively, if you aren't a Python person or don't want to install it (since it must be run as root), you can download a fully packaged pex file and run without installing:

wget https://github.com/dellis23/ispy/blob/master/bin/pex/ispy.pex?raw=true -O ispy; chmod +x ispy

Usage

# ispy <pid_to_watch>

Use Cases

  • Watching someone else's terminal
  • Watching the output of a backgrounded process

Notes

Not intended for production!

It's probably buggy.

This was mainly an exercise in learning about ptrace for myself. I haven't done anything more than smoke testing on a couple of operating systems.

This uses the same system call as strace (ptrace), which is heavy-handed and has a performance impact. It is not recommended to use in production or against mission-critical applications. It's also written in Python, so it's even slower.

Supported OSs

This has been tested as working on:

  • Ubuntu
  • CentOS

This has been tested as not working on:

  • OSX

Thanks

Thanks to the creator and maintainers of python-ptrace; this project depends on it.