有没有人知道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和called.rb期间执行java进程。结果是:
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进程,但我还没有看到它。 有谁知道原因?