# inetd.stem # # Emulate an inetd daemon # # # Load the consols module so we can enter commands to stem [ class => 'Stem::Console', ], # these two cells are both SockMsg's. they are servers listening for # connections on different ports. they have different Cell addresses (A, # B). Both use the Stem::Cell attributes to handle cloning upon # connection and the logical pipe to the Stem::Proc cell. Note that B # has the pipe_args option which sends extra arguments to the other side # of the pipe. this enables line numbering in the output of the # proc_serv script. [ class => 'Stem::SockMsg', name => 'A', args => [ port => 6666, server => 1, cell_attr => [ 'cloneable' => 1, # this name maps to the cell name of the Stem::Proc below 'pipe_addr' => 'quote', ], ], ], [ class => 'Stem::SockMsg', name => 'B', args => [ port => 6667, server => 1, cell_attr => [ 'cloneable' => 1, # this name maps to the cell name of the Stem::Proc below 'pipe_addr' => 'quote', 'pipe_args' => '-n', ], ], ], # this is the Stem::Proc cell actually forks the program. its name is # refered to by the SockMsg cells. [ class => 'Stem::Proc', name => 'quote', args => [ path => 'quote_serve', use_stderr => 1, cell_attr => [ 'cloneable' => 1, ], ], ],