Library to put commands into running ruby process via socket.
You can check status of the process and execute methods.
gem install command_server
require 'command_server'
class SomeWorkClass
def initialize
@cmdserver = CommandServer.new
@cmdserver.enable_builtin_command("eval");
@cmdserver.enable_builtin_command("help");
@cmdserver.register_command("show_threads", proc{ puts Thread.list })
@cmdserver.register_command("show_pid", proc{ puts $$ })
@cmdserver.start("/tmp/some_work_socket")
end
end
SomeWorkClass.new
sleep
And then, put a command from 'cmdshell'
$ cmdshell /tmp/some_work_socket show_threads
#<Thread:0x007f88728cb7c8>
#<Thread:0x007f88729e1c48>
#<Thread:0x007f88729e10b8>
Or put commands interactively
$ cmdshell /tmp/some_work_socket
(/tmp/some_work_socket)> help
Available commands:
eval
help
show_pid
show_threads
(/tmp/some_work_socket)> show_pid
2971
(/tmp/some_work_socket)> show_threads
#<Thread:0x007f88728cb7c8>
#<Thread:0x007f88729e1c48>
#<Thread:0x007f88729e10b8>
(/tmp/some_work_socket)> eval puts self
main
This software is released under the MIT License, see LICENSE.txt.