Почему я не вижу новый процесс ruby, когда выкладываю оболочку? - PullRequest
0 голосов
/ 27 февраля 2019

Насколько я понимаю, когда вы выкладываете в ruby, весь процесс ruby ​​сначала разветвляется.Однако я не могу найти способ наблюдать это на уровне ОС.Я вижу только автономный процесс ОС.Моя методология ниже.В спящем случае я ожидаю увидеть какой-то рубиновый дочерний процесс, но я вижу только запущенный спящий процесс на уровне ОС.В качестве сравнения, я также делаю явный форк, чтобы увидеть, что проявляется в выводе ps.Поведение здесь соответствует ожидаемому.

Что-то не так с моей методологией (возможно, ps не показывает дочерние процессы в некоторых случаях?), Или я ошибаюсь по поводу разветвления в ruby?

Терминал 1 (pts / 0)

работает irb

Я пытаюсь это:

`sleep 10`

И это:

Process.wait2(Process.fork {sleep 10})

Терминал 2 (pts/ 2)

watch "ps -A -O rss |grep 'pts/0'| grep -v 'pts/1'"

Результаты

До

3795 10704 S pts/0    00:00:00 irb

После

shell sleep

3795 10704 S pts/0    00:00:00 irb
4397   680 S pts/0    00:00:00 sleep 5

ruby ​​fork

3795 10704 S pts/0    00:00:00 irb
4449  5680 S pts/0    00:00:00 irb
...