Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ctrun(1)			 User Commands			      ctrun(1)

       ctrun - execute command in a process contract

       /usr/bin/ctrun [options]	command	[ argument...]

       The ctrun utility starts	a command in a newly created process contract.
       ctrun holds the contract	and can	be instructed to output	or respond  to
       events that occur within	the contract.

       For additional information about	process	contracts, see contract(4) and

       The following options are supported:

       -i event,[event ...]
       -f event,[event ...]

	   Sets	the informative	and fatal events, respectively.

	   The following are valid events:

	   core		   A member process dumped core.

			   core	events are informative by default.

	   empty	   The last member of the process contract exited.

	   exit		   A member process exited.

	   fork		   A process was added to the process contract.

	   hwerr	   A member process encountered	a hardware error.

			   hwerr events	are fatal by default.

	   signal	   A member process received a	fatal  signal  from  a
			   process in a	different process contract.

	   Only	core, hwerr, and signal	events can be made fatal.

	   More	 events	can be delivered than requested	if ctrun requires them
	   for its own purposes. For example, empty messages  are  always  re-
	   quested if a	lifetime of contract is	specified. See -l.

       -l lifetime

	   The following valid lifetime	values are supported:

	   child	   ctrun  exits	 when the command exits, regardless of
			   whether the contract	is empty.

	   contract	   ctrun exits only when the contract exits.  This  is
			   the default.

	   none		   ctrun exits immediately, orphaning the contract.

       -o option,[option ...]

	   The following options are supported:

	   noorphan	   Kills  all  processes in the	contract if the	holder
			   (ctrun) exits.

			   This	option is invalid when a lifetime of  none  is

	   pgrponly	   If  a fatal error occurs, kills at most the process
			   group of which the errant process is	a member.

	   regent	   The contract	inherits  inheritable  contracts  when
			   abandoned by	member processes.

       -r count

	   If the contract encounters a	fault, this option attempts to restart
	   the command count times. If count is	0, the attempt to restart con-
	   tinues  indefinitely. By default, ctrun does	not attempt to restart
	   the command.

	   This	option is invalid if a lifetime	other than contract is	speci-
	   fied	or if the pgrponly option is used.


	   If  the  contract  created by ctrun inherited subcontracts from its
	   member processes, attempts to transfer them	to  the	 new  contract
	   when	restarting.

	   This	option is invalid unless -r is also specified.


	   Displays contract events and	ctrun actions as they occur.


	   Displays verbose contract events, as	are displayed by the -v	option
	   of ctwatch. Implies -v.

       The following operands are supported:

       argument	       One of the strings treated as an	argument to command.

       command	       The command to be passed	to execvp(2). See exec(2).

       Example 1: Running a Shell in a New Process Contract

       The following example runs a shell in a new process contract:

       example%	ctrun -l child -o pgrponly ksh

       The -l child option argument is specified so that ctrun won't wait  un-
       til all children	of the shell have exited. -o pgrponly is specified be-
       cause an	interactive ksh	puts each job in a new process group,  and  an
       error in	one job	is unlikely to affect the others.

       Example 2: Running a Simple Server

       The following example runs a simple server:

       example%	ctrun -r 0 -t -f hwerr,core,signal server

       The  -r	0  and -t options are specified	to indicate that if the	server
       encounters a fatal error, ctrun should try to restart it. The -f	option
       makes "hwerr", "core", and "signal" fatal events.

       If  command  is	specified  and successfully invoked (see exec(2)), the
       exit status of ctrun is the exit	status of  command.  Otherwise,	 ctrun
       exits with one of the following values:

       123	The child process exited abnormally.

       124	ctrun encountered an internal error.

       125	Invalid	arguments were provided	to ctrun.

       126	command	was found but could not	be invoked.

       127	command	could not be found.


       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |Interface Stability	     |See below.		   |

       Human Readable Output is	Unstable. Invocation is	Evolving.

       ctstat(1), ctwatch(1), exec(2), contract(4), process(4),	attributes(5)

SunOS 5.10			  15 Jul 2004			      ctrun(1)


Want to link to this manual page? Use this URL:

home | help