Насколько я понимаю, когда вы выкладываете в 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