You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

ARTICLE IN PROGRESS

 

 

Running multiple instances of JobScheduler Universal Agent

  • Multiple instances of the JobScheduler Agent on the same computer can be operated, e.g. for different user accounts that jobs should be executed for.
  • Any number of Agent instances can be started from the same installation, however, different ports have to be used that the Agent is listening to for requests of a JobScheduler Master.
  • Create an instance startscript for each JobScheduler Agent instance.
    • You find a template jobscheduler_agent_instance.(sh|cmd)-example for an instance script in the ./bin directory of the JobScheduler Agent installation since release 1.10.2.
    • For older releases you can download the templates ...
    • Copy this template to jobscheduler_agent_<port>.(sh|cmd) where <port> is the port that the Agent is listening to.
  • Configure the instance script with a text editor and set ...
    • the environment variable SCHEDULER_HTTP_PORT particularly
    • other environment variables as desired
  • Now you can start and stop etc. the JobScheduler Agent with the instance script where you no longer have to use command line options because the command line options are specified by the environment variables.
  • On Unix you can use the instance script as init script in /etc/init.d.

Create and configure the JobScheduler Universal Agent instance on Unix

  • We assume that the JobScheduler Agent instance listen for example to port 4445

create instance script for an Agent with port 4445
> cp ./bin/jobscheduler_agent_instance.sh-example ./bin/jobscheduler_agent_4445.sh
  • Edit the ./bin/jobscheduler_agent_4445.sh.
  • First you find a LSB Header which describes the run levels etc. when you use the instance script as init script in /etc/init.d.
    • The "Provides" entry in the LSB Header has to be unique. Add the port to the value of the "Provides" entry.

      This setting is required if the instance script is used as a service init script in /ect/init.d!

      ### BEGIN INIT INFO
      # Provides:          JobSchedulerAgent4445
      # Required-Start:    $syslog $remote_fs
      # Required-Stop:     $syslog $remote_fs
      # Default-Start:     3 5
      # Default-Stop:      0 1 2 6
      # Description:       Start JobScheduler Agent
      ### END INIT INFO

  • You find the environment variables of the JobScheduler Universal Agent.

    • All variables are still undefined in the instance script so that defaults are used which are already described in JobScheduler Universal Agent - Installation & Operation.
    • If you want to set a variable then the line with the variable has to be uncommented.

      SCHEDULER_HOME

      This variable has to point to the installation path of the JobScheduler Universal Agent (e.g. /opt/jobscheduler_agent).
      If the instance script is only used in the current ./bin directory then this variable can remain undefined.

      This setting is required if the instance script is used as a service init script in /ect/init.d to find the Agent installation!

      SCHEDULER_USER

      Sets the user account that the JobScheduler Agent is operated for. This includes running jobs with the permissions of the specified user.
      Without setting this environment variable the user account that runs the start script is used.

      This setting is required if the instance script is used as a service init script in /ect/init.d to avoid that the Agent runs with the root user!

       

      SCHEDULER_HTTP_PORT

      The port of the Agent. It has to be the same value like the suffix in the instance script basename. In this example

      SCHEDULER_HTTP_PORT=4445
      SCHEDULER_LOG_DIR

      Set the directory where the JobScheduler Agent log file is created. The default is SCHEDULER_HOME/logs.
      It is recommended to use the same log directory for all instances. According the Linux Filesystem Hierarchy Standard (FHS) you can set e.g. SCHEDULER_LOG_DIR=/var/log/

      SCHEDULER_LOG_DIR=/var/log/jobscheduler/agent

      Make sure that the SCHEDULER_USER has read and write permissions in SCHEDULER_LOG_DIR.
      If you use the same SCHEDULER_LOG_DIR for all instances then make sure that the SCHEDULER_USER of all instances has read and write permissions.

      SCHEDULER_PID_FILE_DIR

      Set the directory where the JobScheduler Agent pid file is created. The default is SCHEDULER_LOG_DIR.

      Make sure that the SCHEDULER_USER has read and write permissions in SCHEDULER_PID_FILE_DIR.
      If you use the same SCHEDULER_PID_FILE_DIR for all instances then make sure that the SCHEDULER_USER of all instances has read and write permissions.

       SCHEDULER_WORK_DIR 
  • Use the environment variable SCHEDULER_USER to operate the Agent for a user account that is different from the one that starts the Agent.
    • Use the environment variable SCHEDULER_HTTP_PORT or the option -http-port=#### to start the Agent for a port that is different from the default setting.
    • Make sure that the directories SCHEDULER_LOG_DIR and SCHEDULER_PID_FILE_DIR are readable and writable for the different user accounts

     

  • No labels