PLC Service

From PlcWiki

Revision as of 15:23, 19 January 2011 by David (Talk | contribs)
Jump to: navigation, search

PLC Service is a unified way of running tasks in the background.

Any script or program can be run as a system service.


Contents

Service installation

/usr/local/plc/bin/plc_service_install [-s|--start] <service name>

This command will install (and with -s option even start) a new system service. If the program has the same name as the service, is in /usr/local/plc/bin/ directory and doesn't take any command line options, no other configuration is needed.

Also if a file with name /usr/local/plc/etc/<service name>_<WPID>.cfg or /usr/local/plc/etc/<service name>.cfg exists, it is passed as a parameter to the program by default and no configuration is needed, supposed this is the only option that the program needs.

If the service name is plc, it will install a superservice that will reparent all current PLC services. Such services are launched on boot as plc subservices and are started when the plc superservice is started (and stopped when the plc superservice is stopped) unless it has NOAUTOSTART=yes in its configuration.

All subservices are required to have appropriate configuration file in /usr/local/plc/etc/service/. This configuration file can be empty if the default behaviour is sufficient. For old-style PLC services, an empty configuration file is created upon first start of plc superservice as a part of migration process.

Service uninstallation

/usr/local/plc/bin/plc_service_uninstall <service name>

This command stops and uninstalls given PLC service.

Service list

/usr/local/plc/bin/plc_service_list [-s]

List all installed PLC services. -s option also shows their status.

Service configuration

Service configuration file has to be named like this (sorted in the order of precedence):

  1. /usr/local/plc/etc/service/<name>
  2. /usr/local/plc/etc/<name>.service.cfg
  3. /usr/local/plc/etc/<name>

Commented configuration file example

# Not necessary if the program name is the same as the service name
PROGRAM="/usr/local/plc/bin/blah"

# Start again if the process gets killed by accident or crashes.
# Set to "yes" by default.
KEEPRUNNING=yes

# Command line arguments
OPTIONS="-v"

# Default stdout log file is named /usr/local/plc/log/<name>.service.log"
#LOG=/tmp/logfile.log

# Default error log file is named /usr/local/plc/log/<name>.service.err.log"
#ERRORLOG=/tmp/errlogfile.log

# If set, standard output and standard error output are redirected to the same file ( $LOG ).
# Set to "yes" by default.
#COMMONLOG=no

# If set, the plc superservice won't start this service when started (however it will stop it when stopped)
# Set to "no" by default.
#NOAUTOSTART=yes

# Any other variables set here will be accessible from the program

RUNFASTER=yes
DONTCRASH=yes
Personal tools