Improve namespace cleanup to make sure some required directories stick around, and...
[util-vserver.git] / doc / configuration.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE database SYSTEM "configuration.dtd" []>
3 <!-- $Id$ -->
4
5 <database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6           xsi:noNamespaceSchemaLocation="file:configuration.xsd">
7
8   <!-- Global configuration -->
9   <collection name=".defaults" use="optional">
10     <collection name="init" type="fixed">
11       <data name="mtab">
12         <description>Default mtab file</description>
13       </data>
14     </collection>
15
16     <link name="vdirbase">
17       <default>/vservers</default>
18       <description>A link to the default vserver rootdirectory.</description>
19     </link>
20
21     <link name="cachebase">
22       <default>/var/cache/vservers</default>
23       <description>
24 A link to the directory which will hold cached information about
25 vservers.
26       </description>
27     </link>
28
29     <boolean id="global-nonamespace" name="nonamespace">
30       <description>
31 Disable namespace usage globally. It can be overridden for a single vserver
32 by setting the <optionref ref="global-namespace">namespace</optionref> flag
33 there.
34
35 In this mode the <directory>/vservers</directory> directory must have
36 the 'barrier' attribute. Else, common chroot(2) exploits are possible.
37       </description>
38     </boolean>
39
40     <boolean id="global-namespace-cleanup" name="namespace-cleanup">
41       <description>
42 Enable namespace cleanup globally. It can be overridden for a single vserver
43 by setting the <optionref ref="global-nonamespace-cleanup">nonamespace-cleanup</optionref> flag
44 there.
45       </description>
46     </boolean>
47
48     <list id="global-namespace-cleanup-skip" name="namespace-cleanup-skip">
49       <description>
50 List of paths to skip during namespace cleanup.
51       </description>
52     </list>
53
54     <link name="run.rev">
55       <description>
56 Path of the vserver run reverse directory. This directory contains
57 symlinks named with XID numbers which point back to the configuration
58 directory of vservers. Under kernel 2.4 this is required for the XID
59 to VSERVER mapping; Under kernel 2.6 it is unused.
60
61 NOTE: this link exists in 0.30.202+ only; in previous versions it was
62 a vserver specific setting.
63       </description>
64     </link>
65     
66     <collection name="apps">
67       <collection name="pkgmgmt">
68         <link name="base">
69           <default>/vservers/.pkg</default>
70         </link> 
71         <data name="apt.conf">
72           <description>The default apt.conf which is going to be used. It is overridden by
73 distribution specific configuration file.
74           </description>
75         </data>
76       </collection>
77       
78       <collection name="debootstrap">
79         <scalar name="mirror">
80           <description>
81 The Debian mirror to use with the <tool>debootstrap</tool> program
82           </description>
83         </scalar>
84         <scalar name="uri">
85           <description>
86 When the <tool>debootstrap</tool> package is not installed; fetch it
87 from this uri and install it at a temporary place.
88           </description>
89         </scalar>
90       </collection>
91
92       <collection name="vshelper">
93         <link name="logfile">
94           <description>
95 The file where output will be logged to when <tool>vshelper</tool>
96 is invoked from the kernel. This should point somewhere e.g. into
97 <directory>/var/log</directory>.
98           </description>
99         </link>
100
101         <collection name="vshelper-methods">
102           <program name="handler" type="symbolic">
103             <description>
104 See vshelper/action.
105             </description>
106           </program>
107         </collection>
108
109         <boolean name="disabled">
110           <description>
111 When existing, the vshelper functionality will be disabled for all
112 vservers.
113           </description>
114         </boolean>
115
116         <boolean name="debug">
117           <description>
118 When existing, the vshelper execution will be traced.
119           </description>
120         </boolean>
121         
122         <boolean name="warning-disabled">
123           <description>
124 When existing, sanity checks for the vshelper functionality will be
125 skipped.
126           </description>
127         </boolean>
128
129       </collection>
130       
131       <collection name="vprocunhide">
132         <list name="files">
133           <description>
134 A list of files which will be made visible by vprocunhide. Wildcards are
135 allowed and anything ending in '/' will be processed recursively. When this file exists,
136 it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
137 absolute filenames inclusive the leading '/proc'.
138           </description>
139         </list>
140       </collection>
141       
142       <collection name="init">
143         <link name="tty">
144           <description>
145 A symlink to the TTY device where input/output will be redirected from/to
146 at startup via initscript.
147           </description>
148         </link>
149
150         <hash id="global-environment" name="environment" since="0.30.211">
151           <description>
152 The environment to set when starting guests. Contains one VAR=VAL
153 pair per line.
154           </description>
155         </hash>
156       </collection>
157       
158       <collection name="vunify">
159         <list name="exclude">
160           <description>Static list of excluded files.</description>
161         </list>
162
163         <collection name="hash" since="0.30.205">
164           <description>
165 A directory which will be used as the storage place for the
166 <tool>vhashify</tool> command.
167           </description>
168           <link name="id" type="symbolic">
169             <description>
170 Points to a directory within the filesystems which are used for the
171 vservers. There must be not more than one of such a directory per
172 filesystem.
173             </description>
174           </link>
175
176           <scalar name="method" since="0.30.299">
177             <default>SHA1</default>
178             <description>The used hash method.</description>
179           </scalar>
180         </collection>
181
182         <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
183           <description>
184 When existing, information from packagemanagement will not be used to
185 create dynamic exclude-lists.
186           </description>
187         </boolean>
188
189         <boolean name="pgkmgmt-force" default="off" since="0.30.205">
190           <description>
191 When existing, information from packagemanagement will be used to
192 create dynamic exclude-lists. This option requires that (a known)
193 packagemanagement is configured for the vserver; else the requested
194 operation will fail. Most tools assume 'on' as the default value.
195           </description>
196         </boolean>
197
198       </collection>
199     </collection>
200
201     <collection name="interfaces" use="optional">
202       <boolean id="global-vlandev" name="vlandev" since="0.30.211">
203         <description>
204 When this file exists, the steps which setup and destroy a VLAN
205 interface will be executed.
206         </description>
207       </boolean>
208     </collection>
209   </collection>
210     
211   <collection name=".distributions" use="optional">
212     <collection name="dist" type="symbolic">
213       <scalar name="dev">
214         <description></description>
215       </scalar>
216       <collection name="yum">
217         <description>
218 The default, yum-related content of the <directory>/etc</directory>
219 directory.
220         </description>
221         <scalar name="yum.conf">
222           <description>
223 The master yum configuration file. It supports the @YUMETCDIR@,
224 @YUMCACHEDIR@ and @YUMLOGDIR@ placeholder which will be replaced at
225 <command>vserver ... build</command> time.
226           </description>
227         </scalar>
228       </collection>
229       <collection name="yum.repos.d">
230         <description>A directory with yum repositories.</description>
231       </collection>
232       <data name="apt.conf">
233         <description>
234 The default apt.conf which is going to be used. It overrides the
235 apt.conf from CONFDIR/.defaults/apps/pkgmgmt.
236         </description>
237       </data>
238       <program name="initpre">
239         <description>
240 Script which will be executed before packages will be installed.
241           </description>
242         <parameterList>
243           <parameter name="confdir">
244             <description>
245 The configuration directory of the vserver which is going to be set up.
246             </description>
247           </parameter>
248           <parameter name="util-vserver-vars">
249             <description>
250 The pathname of the util-vserver-vars file.
251             </description>
252           </parameter>
253         </parameterList>
254       </program>
255       <program name="initpost">
256         <description>
257 Script which will be executed after packages are installed.
258           </description>
259         <parameterList>
260           <parameter name="confdir">
261             <description>
262 The configuration directory of the vserver which is going to be set up.
263             </description>
264           </parameter>
265           <parameter name="vserver">
266             <description>
267 The pathname of the util-vserver-vars file.
268             </description>
269           </parameter>
270         </parameterList>
271       </program>
272       
273       <collection name="pkgs">
274         <description>
275 Contains files with packagenames.
276         </description>
277         <list name="list">
278           <description>
279 File which contains the name of packages. On top of file the special
280 keywords '--reinstall' and '--can-fail' are possible.
281           </description>
282         </list>
283       </collection>
284       
285       <collection name="pubkeys">
286         <description>
287 Directory with GPG pubkeys which are used to sign the packages of this
288 distribution.
289         </description>
290       </collection>
291       
292       <collection name="apt">
293         <description>
294 Default content of the <directory>/etc/apt/</directory> directory.
295         </description>
296       </collection>
297       
298       <collection name="rpm">
299         <description>
300 Default content of the <directory>/etc/rpm</directory> directory.
301         </description>
302       </collection>
303       
304       <link name="rpmlib">
305         <description>
306 Directory which overrides <directory>/usr/lib/rpm</directory>.
307         </description>
308       </link>
309       <link name="execdir">
310         <description>
311 Directory with all executables and libraries which are required for
312 this distribution.
313         </description>
314       </link>
315     </collection>
316   </collection>
317   
318   <!-- Vserver configuration -->
319   <collection name="vserver-name" type="symbolic">
320     <description>
321 The configuration directory for the vserver vserver-name.
322     </description>
323
324     <link name="cache">
325       <default>../.defaults/cachebase/VSERVERNAME</default>
326       <description>
327 Path of the storage area for cached information about this vserver.
328       </description>
329     </link>
330     
331     <link name="vdir">
332       <default>../.defaults/vdirbase/VSERVERNAME</default>
333       <description>
334 Path of the vserver root directory.
335       </description>
336     </link>
337
338     <link name="run">
339       <description>
340 Points to a file which will contain the XID of the running vserver. When
341 the vserver is stopped, this can be a dangling symlink.
342       </description>
343     </link>
344
345     <list id="bcapabilities" name="bcapabilities">
346       <description>
347 [experimental; name is subject of possible change] Contains the system capabilities. See
348 <ulink url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/bcaps-v13.c">lib/bcaps-v13.c</ulink>
349 for possible values.
350       </description>
351     </list>
352     <list name="ccapabilities">
353       <description>
354 [experimental; name is subject of possible change] Contains the
355 context capabilities. See <ulink
356 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/ccaps-v13.c">lib/ccaps-v13.c</ulink>
357 for possible values.
358       </description>
359     </list>
360
361     <boolean id="global-namespace" name="namespace">
362       <description>
363 Overrides the global <optionref ref="global-nonamespace">nonamespace</optionref> flag and enables
364 namespace usage for the current vserver.
365       </description>
366     </boolean>
367
368     <boolean name="nonamespace">
369       <description>
370 Disables namespace usage for the current vserver.
371
372 In this mode the <directory>/vservers</directory> directory must have
373 the 'barrier' attribute. Else, common chroot(2) exploits are possible.
374       </description>
375     </boolean>
376
377     <boolean id="global-nonamespace-cleanup" name="nonamespace-cleanup">
378       <description>
379 Overrides the global <optionref ref="global-namespace-cleanup">namespace-cleanup</optionref> flag and disables
380 namespace cleanup for the current vserver.
381       </description>
382     </boolean>
383
384     <boolean name="namespace-cleanup">
385       <description>
386 Enable namespace cleanup for the current vserver.
387       </description>
388     </boolean>
389
390     <list name="namespace-cleanup-skip">
391       <description>
392 List of paths to skip during namespace cleanup. This overrides the 
393 <optionref ref="global-namespace-cleanup-skip">global namespace-cleanup-skip</optionref>
394 file.
395       </description>
396     </list>
397
398     <hash name="schedule">
399       <description>
400 [experimental; name is subject of possible change] Contains the
401 scheduler parameters, one per line.
402
403 The Hard CPU limit uses a mechanism called a Token Bucket.  the
404 concept is simple: you have a bucket of a certain size which is
405 filled with a specified amount R of tokens each interval T until the
406 maximum is reached (excess tokens are spilled). At each timer tick,
407 a running process consumes one token from the bucket, unless the
408 bucket is empty. If the bucket is empty the process is put in the
409 hold queue. When the bucket has been refilled to at least M tokens,
410 all on hold processes are rescheduled.
411
412 See the <ulink url="http://linux-vserver.org/Scheduler+Parameters">Linux
413 VServer Wiki</ulink> for more information about this file.
414       </description>
415       <keys>
416         <key id="fill_rate" name="fill-rate">
417           <description>
418 Amount of tokens append to the bucket each interval.
419             </description>
420         </key>
421         <key name="interval">
422           <description>
423 The intervall between refills of amount <optionref>fill_rate</optionref>. This
424 value is express in ticks.
425           </description>
426         </key>
427         <key name="tokens">
428           <description>
429 Initial bucket contents.
430           </description>
431         </key>
432         <key name="tokens-min">
433           <description>
434 The minimum amount of tokens required to unhold processes
435           </description>
436         </key>
437         <key name="tokens-max">
438           <description>
439 The bucket size.
440           </description>
441         </key>
442         <key name="priority-bias">
443           <description>
444 ???
445           </description>
446         </key>
447       </keys>
448     </hash>
449     <scalar name="name">
450       <description>
451 Contains the name of the vserver. When not given, the basename of the directory
452 will be assumed as this name.
453       </description>
454     </scalar>
455     <scalar name="nice">
456       <description>
457 The nice-level on which the vserver will be started.
458       </description>
459     </scalar>
460     <list name="capabilities">
461       <description>
462 Contains per line a capability. This file is used for the 2.4 kernel
463 only; for 2.6 use <optionref>bcapabilities</optionref>.
464       </description>
465     </list>
466     <scalar name="shell">
467       <description>
468 Contains the pathname of the shell which will be used by the "vserver
469 ... enter" command.
470       </description>
471     </scalar>
472     <list name="personality">
473       <description>
474 Used to set the personality of the vserver. First line in the file
475 is the personality-type followed by flags (one item per line). See
476 <filename>/usr/include/linux/personality.h</filename> for possible
477 values.
478       </description>
479     </list>
480     <list name="flags">
481       <description>
482 Contains per line a flag. See <ulink
483 url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/cflags-v13.c">lib/cflags-v13.c</ulink>
484 for possible values.
485       </description>
486       <!--
487       <elements>
488         <element name="fakeinit">
489           <description>
490 The new process will believe it is process number 1. Useful to run a
491 real /sbin/init in a vserver. Warning: this flag should not be used
492 unless you know what you are doing. Often, it is better to use the
493 'plain' initstyle.
494           </description>
495         </element>
496         <element name="lock">
497           <description>
498 The new process is trapped and can't use chcontext anymore.
499           </description>
500         </element>
501         <element name="sched">
502           <description>
503 The new process and its children will share a common
504           </description>
505         </element>
506         <element name="nproc">
507           <description>
508 Limit the number of process in the vserver according to
509 ulimit setting. Normally, ulimit is a per user thing.
510 With this flag, it becomes a per vserver thing.  
511           </description>
512         </element>
513         <element name="private">
514           <description>
515 No one can join this security context once created.
516           </description>
517         </element>
518         <element name="ulimit">
519           <description>
520 Apply the current ulimit to the whole context
521           </description>
522         </element>
523       </elements>
524       -->
525     </list>
526     <scalar name="context">
527       <description>
528 Contains the context which shall be used for the vserver.
529         </description>
530     </scalar>
531     <data id="fstab" name="fstab">
532       <description>
533 The fstab file for the vserver. Entries in this file will be mounted
534 within the network context of the host. Use the
535 <optionref>fstab.remote</optionref> file when you want that the
536 mounting happens in the network context of the vserver. In most cases
537 the 'fstab' file should be used.
538       </description>
539     </data>
540     <data id="fstab.remote" name="fstab.remote">
541       <description>
542 The fstab file for the vserver. Entries in this file will be mounted
543 within the network context of the host; this means that mount will be
544 called as <command>chbind &lt;options&gt; mount ...</command>. See
545 <optionref>fstab</optionref> also.
546       </description>
547     </data>
548     
549     <collection name="apps">
550       <collection name="init">
551         <data name="mtab">
552           <description>
553 The initial-mtab which will be used for the vserver.
554           </description>
555         </data>
556         
557         <scalar name="style">
558           <description>
559 Contains the init-style.
560           </description>
561           <restriction>
562             <enumeration value="sysv"/>
563             <enumeration value="plain"/>
564             <enumeration value="minit"/>
565           </restriction>
566         </scalar>
567         
568         <scalar name="runlevel">
569           <description>The start runlevel.</description>
570         </scalar>
571         
572         <scalar name="runlevel.start">
573           <description>The start runlevel.</description>
574         </scalar>
575         
576         <scalar name="runlevel.stop">
577           <description>The stop runlevel.</description>
578         </scalar>
579         
580         <scalar name="killseq">
581           <description>
582 Contains the 'signal [wait signal]*' sequence which is used to stop
583 the vserver.
584           </description>
585         </scalar>
586         
587         <list name="cmd.start">
588           <description>
589 The command which is used to start the vserver. Each option must be on
590 a separate line.
591           </description>
592         </list>
593         
594         <list name="cmd.start-sync">
595           <description>
596 The command which is used to wait on the vserver after it has been
597 started. Each option must be on a separate line. This file will be
598 ignored when the <optionref>sync</optionref> flag does not exist and the
599 '--sync' option was not used.
600           </description>
601         </list>
602         
603         <list name="cmd.stop">
604           <description>
605 The command which is used to stop the vserver. Each option must be on
606 a separate line.
607           </description>
608         </list>
609         
610         <list name="cmd.stop-sync">
611           <description>
612 The command which is used to wait on the vserver after it has been
613 stopped. Each option must be on a separate line. This file will be
614 ignored when the <optionref>sync</optionref> flag does not exist and the
615 '--sync' option was not used.
616           </description>
617         </list>
618         
619         <list name="cmd.prepare">
620           <description>
621 The command which is used to setup the init-system (e.g. to set the
622 runlevel in the utmp-file). Each option must be on a separate line.
623           </description>
624         </list>
625         
626         <boolean id="sync" name="sync">
627           <description>
628 If this file is not present, all 'cmd.*-sync files will be ignored.
629             </description>
630         </boolean>
631         
632         <link name="tty">
633           <description>
634 A symlink to the TTY device where input/output will be redirected
635 from/to at startup via initscript.
636           </description>
637         </link>
638         
639         <scalar name="mark">
640           <description>
641 This file is used to mark group of vservers which shall be started/stopped
642 together by the initscript. Content is a simple string like 'default'.
643           </description>
644         </scalar>
645         
646         <list name="depends">
647           <description>
648 This file is used to configure vservers which must be running before
649 the current vserver can be started. At shutdown, the current vserver
650 will be stopped before its dependencies. Content of this file are
651 vserver ids (one name per line).
652           </description>
653         </list>
654
655         <hash name="environment" since="0.30.211">
656           <description>
657 The environment to set when starting the guest. Contains one VAR=VAL
658 pair per line.
659           </description>
660         </hash>
661       </collection>
662       
663       <collection name="vshelper">
664         <scalar name="sync-timeout">
665           <default>30</default>
666           <description>
667 The timeout in seconds which is used when synchronising vserver
668 startup/shutdown with the vshelper. When not set, 30 seconds will be
669 assumed.
670           </description>
671         </scalar>
672         
673         <scalar name="action">
674           <default>restart</default>
675           <description>
676 The action which is going to be executed when a vshelper event
677 occurs. The default value is 'restart', but there can be defined own
678 methods by placing scripts into the
679 <optionref>vshelper-methods</optionref> directories. These scripts are
680 fed with the same arguments as the <tool>vshelper</tool> script.
681           </description>
682         </scalar>
683         
684         <program name="event" type="symbolic">
685           <description>
686 When existing, these scripts will be executed *instead* of the default
687 handler defined in 'action'. Their name must match the event which caused
688 the execution of <tool>vshelper</tool>; e.g. 'restart' or 'poweroff'. See
689 the vs_reboot() function in the kernel for more details.
690           </description>
691           <parameterList>
692             <parameter name="xid">
693               <description>
694 The xid of the context calling the vshelper
695               </description>
696             </parameter>
697             <parameter name="event">
698               <description>
699 The reboot-event.
700               </description>
701             </parameter>
702           </parameterList>
703         </program>
704         
705         <boolean name="disabled">
706           <description>
707 When existing, the vshelper functionality will be disabled for this
708 vserver.
709           </description>
710         </boolean>
711
712         <boolean name="debug">
713           <description>
714 When existing, the vshelper execution will be traced for this vserver.
715           </description>
716         </boolean>
717         
718         <boolean name="warning-disabled">
719           <description>
720 When existing, sanity checks for the vshelper functionality will be
721 skipped.
722           </description>
723         </boolean>
724         
725       </collection>
726       
727       <collection id="vshelper-methods" name="vshelper-methods">
728         <program name="handler" type="symbolic">
729           <description>
730 See vshelper/action.
731           </description>
732         </program>
733       </collection>
734       
735       <collection name="vunify">
736         <description>
737 This directory contains configuration data required for vserver
738 unification.
739         </description>
740         
741         <list name="exclude">
742           <description>
743 <p>Static list of files which are excluded for unification. This list
744 supports an rsync-like syntax: when a file is prefixed by '+', it is a
745 candidate for unification; when there is no prefix or a '-' or a '~' it
746 will be excluded. Shell-wildcards are allowed for the filenames.</p>
747 <p>When used with <tool>vcopy</tool>, the '~' prefix prevents copying
748 of the file entirely (e.g. for keyfiles). With this tool, the file will
749 be copied instead of hardlinked when the '-' prefix is used.</p>
750           </description>
751         </list>
752         
753         <link name="refserver.X" type="symbolic">
754           <description>
755 These are symlinks to the configuration directory
756 (e.g. CONFDIR/vservers/&lt;id&gt;) of a refserver. There may be
757 multiple such symlinks but they must be prefixed by 'refserver.' and
758 will be processed in alphanumerical order.
759           </description>
760         </link>
761
762         <collection name="hash" since="0.30.205">
763           <description>
764 A directory which will be used as the storage place for the
765 <tool>vhashify</tool> command.
766           </description>
767           <link name="id" type="symbolic">
768             <description>
769 Points to a directory within the filesystems which are used for the
770 vservers. There must be not more than one of such a directory per
771 filesystem.
772             </description>
773           </link>
774
775           <scalar name="method"  since="0.30.299">
776             <default>SHA1</default>
777             <description>The used hash method.</description>
778           </scalar>
779         </collection>
780
781         <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
782           <description>
783 When existing, information from packagemanagement will not be used to
784 create dynamic exclude-lists.
785           </description>
786         </boolean>
787
788         <boolean name="pgkmgmt-force" default="off" since="0.30.205">
789           <description>
790 When existing, information from packagemanagement will be used to
791 create dynamic exclude-lists. This option requires that (a known)
792 packagemanagement is configured for the vserver; else the requested
793 operation will fail. Most tools assume 'on' as the default value.
794           </description>
795         </boolean>
796         
797       </collection>
798     </collection>
799     
800     <collection name="scripts">
801       <description>
802 A directory for scripts. By default, when one of these scripts will be
803 executed, the execution of defaultscripts (within .../.defaults/scripts)
804 will be skipped. To execute them nevertheless, the $DONT_SKIP_DEFAULTS
805 environment variable must be set by one of the in-shellcontext scripts
806 (the non-executable ones).
807       </description>
808       
809       <program name="initialize" since="0.30.211">
810         <description>
811 The scriptlet which will be executed before the root filesystem is mounted and
812 the configuration has been loaded. Before executing the script, the
813 configuration directory will be made the working directory.
814         </description>
815         <parameterList>
816           <parameter name="action">
817             <description>
818 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
819             </description>
820           </parameter>
821           <parameter name="vserver-name">
822             <description>
823 The name of the current vserver.
824             </description>
825           </parameter>
826         </parameterList>
827       </program>
828       <collection name="initialize.d" since="0.30.211">
829         <description>
830 Repository of initialize like scripts.  Before executing the script,
831 the configuration directory will be made the working directory.
832         </description>                                                                                                                 
833         <program name="script" type="symbolic">
834           <description>See initialize.</description>
835           <parameterList>
836             <parameter name="action">
837               <description>
838 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
839               </description>
840             </parameter>
841             <parameter name="vserver-name">
842               <description>
843 The name of the current vserver.
844               </description>
845             </parameter>
846           </parameterList>
847         </program>
848       </collection>
849       
850       <program name="prepre-start">
851         <description>
852 The scriptlet which will be executed before the network-interfaces are
853 enabled and the directories are mounted. Before executing the script,
854 the configuration directory will be made the working directory.
855         </description>
856         <parameterList>
857           <parameter name="action">
858             <description>
859 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
860             </description>
861           </parameter>
862           <parameter name="vserver-name">
863             <description>
864 The name of the current vserver.
865             </description>
866           </parameter>
867         </parameterList>
868       </program>
869       <collection name="prepre-start.d">
870         <description>
871 Repository of prepre-start like scripts.  Before executing the script,
872 the configuration directory will be made the working directory.
873         </description>                                                                                                                 
874         <program name="script" type="symbolic">
875           <description>See prepre-start.</description>
876           <parameterList>
877             <parameter name="action">
878               <description>
879 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
880               </description>
881             </parameter>
882             <parameter name="vserver-name">
883               <description>
884 The name of the current vserver.
885               </description>
886             </parameter>
887           </parameterList>
888         </program>
889       </collection>
890       
891       <program name="pre-start">
892         <description>
893 The scriptlet which will be executed after network-interfaces were
894 enabled and the directories mounted, but before the vserver itself has
895 been started.  Before executing the script, the vserver root directory
896 will be made the working directory.
897         </description>
898         <parameterList>
899           <parameter name="action">
900             <description>
901 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
902             </description>
903           </parameter>
904           <parameter name="vserver-name">
905             <description>
906 The name of the current vserver.
907             </description>
908           </parameter>
909         </parameterList>
910       </program>
911       <collection name="pre-start.d">
912         <description>
913 Repository of pre-start like scripts. Before executing these scripts,
914 the vserver root directory will be made the working directory.
915         </description>                                                                                                                 
916         <program name="script" type="symbolic">
917           <description>See pre-start.</description>
918           <parameterList>
919             <parameter name="action">
920               <description>
921 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
922               </description>
923             </parameter>
924             <parameter name="vserver-name">
925               <description>
926 The name of the current vserver.
927               </description>
928             </parameter>
929           </parameterList>
930         </program>
931       </collection>
932       
933
934       <program name="post-start">
935         <description>
936 The scriptlet which will be executed after the vserver has been
937 started. Before executing the script, the vserver root directory
938 will be made the working directory.
939         </description>
940         <parameterList>
941           <parameter name="action">
942             <description>
943 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
944             </description>
945           </parameter>
946           <parameter name="vserver-name">
947             <description>
948 The name of the current vserver.
949             </description>
950           </parameter>
951         </parameterList>
952       </program>
953       <collection name="post-start.d">
954         <description>
955 Repository of post-start like scripts. Before executing these scripts,
956 the vserver root directory will be made the working directory.
957         </description>
958         <program name="script" type="symbolic">
959           <description>See post-start.</description>
960           <parameterList>
961             <parameter name="action">
962               <description>
963 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
964               </description>
965             </parameter>
966             <parameter name="vserver-name">
967               <description>
968 The name of the current vserver.
969               </description>
970             </parameter>
971           </parameterList>
972         </program>
973       </collection>
974
975
976       <program name="pre-stop">
977         <description>
978 The scriptlet which will be executed before the vserver will be
979 stopped. Before executing the script, the vserver root directory
980 will be made the working directory.
981         </description>
982         <parameterList>
983           <parameter name="action">
984             <description>
985 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
986             </description>
987           </parameter>
988           <parameter name="vserver-name">
989             <description>
990 The name of the current vserver.
991             </description>
992           </parameter>
993         </parameterList>
994       </program>
995       <collection name="pre-stop.d">
996         <description>
997 Repository of pre-stop like scripts. Before executing the script, the
998 vserver root directory will be made the working directory.
999         </description>                                                                                                                 
1000         <program name="script" type="symbolic">
1001           <description>See pre-stop.</description>
1002           <parameterList>
1003             <parameter name="action">
1004               <description>
1005 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1006               </description>
1007             </parameter>
1008             <parameter name="vserver-name">
1009               <description>
1010 The name of the current vserver.
1011               </description>
1012             </parameter>
1013           </parameterList>
1014         </program>
1015       </collection>
1016
1017       <program name="post-stop">
1018         <description>
1019 The scriptlet which will be executed after the vserver has been
1020 stopped, but before the directories will be umounted and the the
1021 interfaces disabled. Before executing the script, the vserver root
1022 directory will be made the working directory.
1023         </description>
1024         <parameterList>
1025           <parameter name="action">
1026             <description>
1027 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1028             </description>
1029           </parameter>
1030           <parameter name="vserver-name">
1031             <description>
1032 The name of the current vserver.
1033             </description>
1034           </parameter>
1035         </parameterList>
1036       </program>
1037       <collection name="post-stop.d">
1038         <description>
1039 Repository of post-stop like scripts. Before executing the script, the
1040 vserver root directory will be made the working directory.
1041         </description>
1042         <program name="script" type="symbolic">
1043           <description>See post-stop.</description>
1044           <parameterList>
1045             <parameter name="action">
1046               <description>
1047 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1048               </description>
1049             </parameter>
1050             <parameter name="vserver-name">
1051               <description>
1052 The name of the current vserver.
1053               </description>
1054             </parameter>
1055           </parameterList>
1056         </program>
1057       </collection>
1058       
1059       <program name="postpost-stop">
1060         <description>
1061 The scriptlet which will be executed after the vserver has been stopped
1062 completely. Before executing the script, the vserver root directory
1063 will be made the working directory.
1064         </description>
1065         <parameterList>
1066           <parameter name="action">
1067             <description>
1068 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1069             </description>
1070           </parameter>
1071           <parameter name="vserver-name">
1072             <description>
1073 The name of the current vserver.
1074             </description>
1075           </parameter>
1076         </parameterList>
1077       </program>
1078       <collection name="postpost-stop.d">
1079         <description>
1080 Repository of postpost-stop like scripts. Before executing the script,
1081 the vserver root directory will be made the working directory.
1082         </description>
1083         <program name="script" type="symbolic">
1084           <description>See postpost-stop.</description>
1085           <parameterList>
1086             <parameter name="action">
1087               <description>
1088 The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
1089               </description>
1090             </parameter>
1091             <parameter name="vserver-name">
1092               <description>
1093 The name of the current vserver.
1094               </description>
1095             </parameter>
1096           </parameterList>
1097         </program>
1098       </collection>
1099     </collection>
1100     
1101     <collection name="interfaces">
1102       <scalar name="bcast">
1103         <description>The default broadcast address.</description>
1104       </scalar>
1105       <scalar name="dev">
1106         <description>The default network device.</description>
1107       </scalar>
1108       <scalar name="prefix">
1109         <description>The default network prefix-length.</description>
1110       </scalar>
1111       <scalar name="mask">
1112         <description>The default network mask.</description>
1113       </scalar>
1114       <scalar name="scope">
1115         <description>The default scope of the network interfaces.</description>
1116       </scalar>
1117       <boolean id="local-vlandev" name="vlandev" since="0.30.211">
1118         <description>
1119 When this file exists, the steps which setup and destroy a VLAN
1120 interface will be executed for all interfaces of this vserver.
1121         </description>
1122       </boolean>
1123       <boolean id="local-novlandev" name="novlandev">
1124         <description>
1125 When this file exists, the steps which setup and destroy a VLAN
1126 interface will be skipped. This overrides the global
1127 <optionref ref="global-vlandev">vlandev</optionref> setting for
1128 this vserver.
1129         </description>
1130       </boolean>
1131       
1132       <collection name="iface" type="symbolic">
1133         <description>
1134 'iface' is an arbitrary name for the interface; the value itself is
1135 not important but may be interesting regarding interface-creation and
1136 usage with <tool>chbind</tool>. Both happens in alphabetical order and
1137 numbers like '00' are good names for these directories.
1138         </description>
1139         
1140         <boolean name="disabled">
1141           <description>When this file exists, this interface will be ignored.</description>
1142         </boolean>
1143         
1144         <scalar name="ip">
1145           <description>The ip which will be assigned to this interface.</description>
1146         </scalar>
1147         <scalar name="bcast">
1148           <description>The broadcast address.</description>
1149         </scalar>
1150         <scalar name="dev">
1151           <description>The network device.</description>
1152         </scalar>
1153         <scalar name="prefix">
1154           <description>The network prefix-length.</description>
1155         </scalar>
1156         <scalar name="mask">
1157           <description>The network mask.</description>
1158         </scalar>
1159         <scalar name="scope">
1160           <description>The scope of the network interface.</description>
1161         </scalar>
1162         <scalar name="name">
1163           <description>
1164 When this file exists, the interface will be named with the text in
1165 this file. Without such an entry, the IP will not be shown by
1166 <tool>ifconfig</tool> but by <command>ip addr ls</command> only.  Such
1167 a labeled interface is known as an "alias" also (e.g. 'eth0:foo').
1168           </description>
1169         </scalar>
1170         <boolean name="nodev">
1171           <description>
1172 When this file exists, the interface will be assumed to exist
1173 already. This can be used to assign primary interfaces which are
1174 created by the host or another vserver.
1175           </description>
1176         </boolean>
1177         <boolean name="novlandev">
1178           <description>
1179 When this file exists, the steps which setup and destroy a VLAN
1180 interface will be skipped. This will override the global
1181 <optionref ref="global-vlandev">vlandev</optionref> and the per-guest
1182 <optionref ref="local-vlandev">vlandev</optionref>.
1183           </description>
1184         </boolean>
1185         <boolean name="vlandev" since="0.30.211">
1186           <description>
1187 When this file exists, the steps which setup and destroy a VLAN
1188 interface will be executed.
1189           </description>
1190         </boolean>
1191       </collection>
1192     </collection>
1193     
1194     <collection name="ulimits">
1195       <description>
1196 A directory with ulimits. Possible resources are cpu, data, fsize,
1197 locks, memlock, nofile, nproc, rss and/or stack. This configuration
1198 will be honored for kernel 2.4 only.
1199       </description>                                                                                                                 
1200       <scalar name="resource" type="symbolic">
1201         <description>
1202 A file which contains the hard- and soft-limit of the given resource
1203 in the first line. The special keyword 'inf' is recognized.
1204         </description>
1205       </scalar>                                                                            
1206       <scalar name="resource.hard" type="symbolic">
1207         <description>
1208 A file which contains the hard- of the given resource in the first
1209 line. The special keyword 'inf' is recognized.
1210         </description>
1211       </scalar>                                                                                             
1212       <scalar name="resource.soft" type="symbolic">
1213         <description>
1214 A file which contains the soft- of the given resource in the first
1215 line. The special keyword 'inf' is recognized.
1216         </description>
1217       </scalar>
1218     </collection>
1219     
1220     <collection name="rlimits">
1221       <description>
1222 A directory with resource limits. Possible resources are cpu, fsize,
1223 data, stack, core, rss, nproc, nofile, memlock, as and locks. This
1224 configuration will be honored for kernel 2.6 only.
1225       </description>                                                                                                                 
1226       <scalar name="resource" type="symbolic">
1227         <description>
1228 A file which contains the hard- and soft-limit of the given resource
1229 in the first line. The special keyword 'inf' is recognized.
1230         </description>
1231       </scalar>                                                                            
1232       <scalar name="resource.hard" type="symbolic">
1233         <description>
1234 A file which contains the hard- of the given resource in the first
1235 line. The special keyword 'inf' is recognized.
1236         </description>
1237       </scalar>                                                                                             
1238       <scalar name="resource.soft" type="symbolic">
1239         <description>
1240 A file which contains the soft- of the given resource in the first
1241 line. The special keyword 'inf' is recognized.
1242         </description>
1243       </scalar>
1244       <scalar name="resource.min" type="symbolic">
1245         <description>
1246 A file which contains the guaranted minimum of the given resource in
1247 the first line. The special keyword 'inf' is recognized.
1248         </description>
1249       </scalar>
1250     </collection>
1251     
1252     <collection name="uts">
1253       <scalar name="context">
1254         <description>
1255 The context-name of the vserver. This file is listed for completeness
1256 only; the 'context' name is used and set internally by the util-vserver
1257 tools and can *not* be modified.
1258         </description>
1259       </scalar>
1260       <scalar name="sysname">
1261         <description>The sysname of the vserver</description>
1262       </scalar>
1263       <scalar name="nodename">
1264         <description>The node-/hostname of the vserver</description>
1265       </scalar>
1266       <scalar name="release">
1267         <description>The OS-release of the vserver</description>
1268       </scalar>
1269       <scalar name="version">
1270         <description>The OS-version of the vserver</description>
1271       </scalar>
1272       <scalar name="machine">
1273         <description>The machine-type of the vserver</description>
1274       </scalar>
1275       <scalar name="domainname">
1276         <description>The NIS domainname of the vserver</description>
1277       </scalar>
1278     </collection>
1279
1280     <collection name="dlimits" since="0.30.210">
1281       <collection name="dlimit" type="symbolic">
1282         <scalar name="directory">
1283           <description>The directory to which the limit should be applied</description>
1284         </scalar>
1285         <scalar name="inodes_total">
1286           <description>The amount of inodes this vserver should be limited to</description>
1287         </scalar>
1288         <scalar name="space_total">
1289           <description>The amount of space this vserver should be limited to (measured in blocks of 1024 bytes)</description>
1290         </scalar>
1291         <scalar name="reserved">
1292           <description>How much space (percentage-wise) should be reserved for the root user</description>
1293         </scalar>
1294       </collection>
1295     </collection>
1296
1297     <collection name="cpuset" since="0.30.211">
1298       <scalar name="name">
1299         <description>The name of the cpuset for this vserver</description>
1300       </scalar>
1301       <scalar name="cpus">
1302         <description>The list of CPUs in this cpuset</description>
1303       </scalar>
1304       <scalar name="mems">
1305         <description>The list of Memory Nodes in this cpuset</description>
1306       </scalar>
1307       <scalar name="cpu_exclusive">
1308         <description>Is the CPU assignment exclusive?</description>
1309       </scalar>
1310       <scalar name="mems_exclusive">
1311         <description>Is the memory node assignment exclusive?</description>
1312       </scalar>
1313       <scalar name="nocreate">
1314         <description>When this file exists, the cpuset will be assumed to exist already</description>
1315       </scalar>
1316     </collection>
1317   </collection>
1318   </database>