jail -r & jail -R
    dweimer 
    dweimer at dweimer.net
       
    Fri Feb 14 15:51:23 UTC 2014
    
    
  
I think I may have discovered a bug in the jail management system, if 
you look at the man page for jail.
  -r      Remove the jail specified by jid or name.  All jailed processes
              are killed, and all children of this jail are also removed.
  -R      A variation of the -r option that removes an existing jail 
with-
              out using the configuration file.  No removal-related 
parameters
              for this jail will be used - the jail will simply be 
removed.
However I have discovered, even though -r says it can take either the 
jail name or jail id, if you use the id it appears to function as if you 
used the -R option instead, whereas using the -r option with the name 
correctly stops the jail with the configuration parameters from the 
jail.conf.
I discovered this trying to figure out why the jails devfs system was 
not dismounting, and my exec.poststop script was not running.  I 
discovered that if I used the name instead of id, I didn't run into this 
issue.
Can anyone else verify that this is a bug or invalid information in man 
if its not, or do I have something wrong in my configuration, below is a 
sample configuration and steps that can be used to reproduce the issue.
Example /etc/jail.conf:
apache {
         jid = 1;
         host.hostname = apache.mydomainname.com;
         ip4.addr = 192.168.1.2;
         interface = em0;
         path = /jails/apache/10.0-r260787-2014.02.12;
         allow.mount.devfs;
         mount.devfs;
         allow.sysvipc;
         exec.start = "/bin/sh /etc/rc";
         exec.stop = "/bin/sh /etc/rc.shutdown";
         exec.prestart = "/jails/apache/prestart.sh";
         exec.poststop = "/jails/apache/poststop.sh";
         exec.consolelog = "/jails/apache/console.log";
}
repeatable test scenario:
jail -c apache
   all looks good
jail -r apache
   all is right, jail devfs is gone, /jails/apache/proststop.sh ran.
jail -c apache
   all looks good
jail -r 1
   something is wrong
     /jails/apache/10.0-r260787-2014.02.12/dev is still mounted
     /jails/apache/proststop.sh hasn't run
     jail is gone
   do manually cleanup
     umount /jails/apache/10.0-r260787-2014.02.12/dev
     execute /jails/apache/proststop.sh script
jail -c apache
   all looks good
jail -R apache
   As expected
     /jails/apache/10.0-r260787-2014.02.12/dev is still mounted
     /jails/apache/proststop.sh hasn't run
     jail is gone.
-- 
Thanks,
    Dean E. Weimer
    http://www.dweimer.net/
    
    
More information about the freebsd-questions
mailing list