PSTree - Process Status Tree for UNIX in Ruby
Description
This library provides a Ruby implementation of the pstree utility, enabling
developers to visualize process hierarchies as tree structures. It parses
system process information and presents it in an easily readable format with
proper indentation and Unicode/ASCII tree characters.
The library can be used both programmatically as a data structure and through its command-line interface for quick process tree visualization.
Installation
RubyGems
Install the latest version from RubyGems.org:
gem install pstreeBundler
Add to your Gemfile:
gem 'pstree'Then run:
bundle installRequirements
- Ruby 2.0 or higher
- UNIX-like operating system (Linux, macOS, BSD)
-
/bin/psutility available in PATH
Usage
You can display a simple process tree by executing the ruby-pstree script.
$ ruby-pstree $$
34223 -bash (flori)
└─ 37124 ruby /Users/flori/.rvm/gems/ruby-2.6.2/bin/ruby-pstree 34223 (flori)
└─ 37129 /bin/ps axww -o ppid,pid,user,command (root)
Programmatic Usage
Access process information programmatically:
require 'pstree'
# Create a process tree for PID 1 (init)
tree = PSTree.new(1)
# Iterate over processes in the tree
tree.each do |process|
puts "#{process.pid}: #{process.cmd}"
end
# Or get the tree as a string
puts tree.to_s
# Navigate the tree to find the pids of your favourite processes
pid_of_shell_parent_of_irb = tree.find { it.cmd =~ /irb/ }&.ppidDownload
The homepage of this library is located at