[ic] Interchange as a System service.

Mike Heins mike at perusion.com
Mon Mar 14 20:57:42 EST 2005


Quoting Daniel Davenport (ddavenport at newagedigital.com):
> >>> andreb at techess.com 03/10/05 08:48PM >>>
> > Hi all.. how do i setup interchange as a service to start up on the
> > different run levels..
> >
> > Andre
> 
> (NOTE:  this message describes how RH/Fedora does services.  YMMV.  If
> you use another flavor of Linux, i guarantee nothing about how well this
> stuff works.)

Great message! I hope Kevin snags it for interchange.rtfm.info.

One thing you can do on a Linux box is install Interchange
like this:

	perl Makefile.PL LSB=1

It must be done as root -- LSB is supposed to stand for "Linux Standard
Base".

What it does is:

   * Install Interchange at /usr/lib/interchange

   * Install a compliant script as described below in
     Daniel's great message.

   * Place the /usr/sbin/interchange script so that there
     is a daemon starting script for Interchange.

   * Makes the appropriate log and run directories
     (/var/run/interchange and /var/log/interchange) and link
     things to it.

   * Install interchange.cfg in /etc/interchange/ and place
     appropriate symlinks.

In other words, it is like installing Interchange from the RPM without
the dependencies and such.

> 
> The only thing "special" about services, as opposed to other daemons,
> is that a service has a script in /etc/init.d (and links in
> /etc/rc.d/rc[0-6].d) that can tell the daemon to start, stop, or
> whatever.  You need a script like the ones in /etc/rc.d/init.d, but
> which instead of starting sshd or apache or whatever, starts
> interchange.  It's not too hard to write....it can just be a shell
> script that takes a command as the first parameter/argument/whatever. 
> Personally, since i'm not a whiz with shell scripts, i'll often just
> make a copy of one of the existing scripts and change the commands
> around to suit the service i need started.  Replace
> '/usr/sbin/someotherd' with '/usr/local/interchange/bin/interchange',
> etc.  :)  Look at the various scripts in init.d; one is usually better
> than others for making these kinds of changes.
> 
> (note: since IC usually runs as interch(ange)?, you might do better to
> just strip out the start and stop commands and put in what you usually
> put in to start IC.  su -c and all.)
> 
> The commands can be just about anything....apache, for example,
> responds to a "configtest" command--which runs just long enough to
> check/parse the config files, and doesn't disturb the already-running
> server.  Helpful.  :)   If you want your service's script to be useful,
> you'll need to at least respond to 'start' and 'stop' commands. 
> 'restart' would be good too. 
> 
> init.d scripts also have a couple of comment lines near the top of the
> file that describe the service and specify what runlevels the service
> should start in by default, and in what order it should start (relative
> to other programs in the same runlevel).  If you look at other scripts
> in init.d, you'll see a line like
> 
> # chkconfig: 2345 60 40
> 
> That's the important one--it specifies the default runlevels, start
> order, and stop order for the service.  The first number is really a
> string of digits, one for each default runlevel.  '2345' means the
> service will start in all the standard runlevels, unless you tell it to
> do otherwise.  (0, 1, and 6 are special.  Don't set up a daemon to run
> in any of those runlevels.)  The last two numbers are the start order
> and stop order respectively, should each be two digits, and can be
> anything from 00 to 99.  Services with 00 as their start order will be
> started first, and 99 means it wil be started last.  In the case of IC,
> make sure it starts after all of the services it depends on (httpd,
> postgres or mysqld, network, etc), and stops before any of them....or
> there will be trouble.  Personally, i prefer that the numbers add up to
> 99 or 100....just because that helps make sure that what starts last
> stops first, and vice versa.
> 
> Your safest bet is to use a line like
> 
> #chkconfig: 2345 99 00
> 
> This will make IC one of the last services to start, and one of the
> first to stop.  Until you're comfortable with manipulating services,
> paranoia is not a bad thing.
> 
> Another line you'll find useful is
> 
> # description: Starts and stops the Interchange server.
> 
> Whatever you put after description: will be shown in programs like
> system-config-services (or redhat-config-services, for the rh[8-9]
> folks) when you click on the service name.  I'm not sure whether this
> line is really required (although i've never had a problem, `man
> chkconfig` suggests it is), but it can't hurt to include it.
> 
> when your script is done, cp/mv it to /etc/rc.d/init.d/interchange. 
> chmod it a-rwx,u=rx; and chown it to root.root.  Then say "chkconfig
> --add interchange".  That'll put the symlinks in the right places so
> that IC starts at the right time.
> 
> Once your script is in init.d and properly chmodded, you can say
> "service interchange start".  Guess what that does.
> 
> /
> _______________________________________________
> interchange-users mailing list
> interchange-users at icdevgroup.org
> http://www.icdevgroup.org/mailman/listinfo/interchange-users
> 

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Software axiom: Lack of speed kills.


More information about the interchange-users mailing list