Sommige beheerders kiezen ervoor om jails op te delen in de volgende twee types: “complete” jails, welke een volledig FreeBSD systeem emuleert en “service” jails, gericht op één applicatie of dienst, mogelijkerwijs draaiende met privileges. Dit is alleen een conceptuele splitsing, de manier van het opbouwen van een jail wordt hierdoor niet veranderd. De jail(8) handleiding is heel duidelijk over de procedure voor het maken van een jail:
# setenv D /here/is/the/jail # mkdir -p $D # cd /usr/src # make buildworld # make installworld DESTDIR=$D # make distribution DESTDIR=$D # mount -t devfs devfs $D/dev
Zodra een jail is geïnstalleerd, kan het opgestart worden door de jail(8) applicatie. De
jail(8) applicatie
heeft vier benodigde argumenten welke beschreven worden in Paragraaf 16.3.1. Er kunnen ook andere argumenten
gebruikt worden, om bijvoorbeeld de jail te starten met de instellingen van een
specifieke gebruiker. Het commando
argument hangt af van het type jail, voor
een virtueel systeem is /etc/rc een goede keuze, omdat het de reguliere opstart procedure
nabootst van een FreeBSD systeem. Voor een dienst jail is het geheel afhankelijk van de dienst of
applicatie die in de jail gaat draaien.
Jails worden over het algemeen gestart tegelijkertijd met de rest van het systeem. Het FreeBSD rc mechanisme levert een makkelijke manier om dat te doen:
Een lijst van jails die opgestart moeten worden tijdens het opstarten van het systeem, moeten worden toegevoegd aan het rc.conf(5) bestand:
jail_enable="YES" # Stel dit in op NO om te voorkomen dat er jails gestart worden jail_list="www" # Door spaties gescheiden lijst van jails
Opmerking: De jail namen in
jail_list
mogen alleen alfanumerieke karakters bevatten.
Voor elke jail die gespecificeerd is in jail_list
moet een groep van rc.conf(5)
instellingen worden toegevoegd:
jail_www_rootdir="/usr/jail/www" # de hoofd directory van de jail jail_www_hostname="www.example.org" # de hostnaam van de jail jail_www_ip="192.168.0.10" # het IP adres van de jail jail_www_devfs_enable="YES" # moet devfs wel of niet gekoppeld worden in de jail jail_www_devfs_ruleset="www_ruleset" # welke devfs ruleset gebruikt moet worden voor de jail
De standaard opstart variabelen in rc.conf(5)
gebruiken het /etc/rc bestand om de jail op te starten,
wat er vanuit gaat dat de jail een compleet virtueel systeem is. Voor service jails
moet het standaard opstart commando worden gewijzigd door het aanpassen van de
jail_jailname_exec_start
optie.
Opmerking: Voor een complete lijst van beschikbare opties, zie de rc.conf(5) handleiding.
service(8) kan worden gebruikt om jails handmatig te starten en te stoppen, mits er een overeenkomstige verzameling regels bestaat in /etc/rc.conf.
# service jail start www # service jail stop www
Er is op dit moment geen nette methode om een jail te stoppen. Dit komt omdat de benodigde applicaties die een nette afsluiting verzorgen, niet beschikbaar zijn in een jail. De beste manier om een jail af te sluiten is door het volgende commando van binnenin de jail uit te voeren of door middel van het jexec(8) commando:
# sh /etc/rc.shutdown
Meer informatie hierover kan gevonden worden in de jail(8) handleiding.