有没有人知道 JRuby 实现 exec 的实现。
我有两个简单的 rubys 脚本: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 进程,但我没有看到它。有谁知道原因吗?