1

有没有人知道 JRuby 实现 exec 的实现。

我有两个简单的 ruby​​s 脚本:Test.rb 通过 exec 调用另一个名为.rb,如下所示:

//Test.rb
#!/usr/bin/env jruby
sleep 10
puts "hello 1 " 
exec  "./called.rb"
puts "hello 2"

//called.rb
#!/usr/bin/env jruby
puts "called a "
sleep 10
puts "called b

执行完./test.rb后,我在执行Test.rb的过程中对java进程进行了ps,并调用了.rb。结果是:

shijiex   6129  9987 10 22:21 pts/2    00:00:00 java -client -Djruby.memory.max=500m -Djruby.stack.max=1024k -Xmx500m -Xss1024k -Djffi.boot.library.path= -Xbootclasspath/a:/usr/lib/jruby//lib/jruby.jar -classpath : -Djruby.home=/usr/lib/jruby/ -Djruby.lib=/usr/lib/jruby//lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main ./test.rb
shijiex   6129  9987  4 22:21 pts/2    00:00:00 java -client -Djruby.memory.max=500m -Djruby.stack.max=1024k -Xmx500m -Xss1024k -Djffi.boot.library.path= -Xbootclasspath/a:/usr/lib/jruby//lib/jruby.jar -classpath : -Djruby.home=/usr/lib/jruby/ -Djruby.lib=/usr/lib/jruby//lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main ./test.rb

我的理解是 exec 应该调用另一个 Jruby 进程,但我没有看到它。有谁知道原因吗?

4

0 回答 0