Я хочу управлять многими различными приложениями Sinatra из центрального приложения (Sinatra).
У меня проблема в том, каким образом я выполняю / spawn / fork вызов для его запуска, я не могу получить pid сервера Sinatra, чтобы я мог его убить (: int)?
Это связано с моей строкой оболочки exec, которая сначала содержит несколько других команд, поэтому я получаю pid первой.
Моя командная строка похожа на
command = source ~/.profile; rbenv #{ver}; some_env=1234 ruby app.rb
Итак, я получил pid процесса sh команды sourcing.
Вопрос в том, как мне получить pid команды ruby, запущенной выше?
В настоящее время я использую spawn, но пробовал и большинство других, но я не думаю, что это проблема!?
pid = Process.spawn(command)
pid # => 1234
Само приложение ruby запускается
$ ps aux
1234 sh -c . ~/.profile; shell_script
4567 shell_script
Я хочу знать 4567!?