diff -r 000000000000 -r 92d00ff32c56 examples/jexec.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/jexec.rb Fri Aug 15 15:43:38 2008 +0000 @@ -0,0 +1,29 @@ +#!/usr/bin/ruby + +BEGIN { + require 'pathname' + basedir = Pathname.new( __FILE__ ).dirname.parent + + $LOAD_PATH.unshift basedir + "ext" unless + $LOAD_PATH.include? basedir + "ext" +} + + +require 'bsdjail' + +jid = Integer( ARGV.shift ) +args = ARGV + +$deferr.puts "In process #{Process.pid}, about to jail_attach() with a block" + +childpid = BSD::Jail.attach( jid ) do + Dir.chdir( "/" ) + $deferr.puts "Child #{Process.pid} exec()ing:", " " + args.join(" ") + exec( *args ) +end + +$deferr.puts "Parent: waiting on imprisoned child #{childpid}" +Process.waitpid( childpid ) + +$deferr.puts "Child exited with exit code: %d" % [ $?.exitstatus ] +