Jobs¶
This file defines the Job class, which is the primary code API to robot_upstart.
-
class
robot_upstart.job.
Job
(name='ros', interface=None, user=None, workspace_setup=None, rosdistro=None, master_uri=None, log_path=None)[source]¶ Represents a ROS configuration to launch on machine startup.
Construct a new Job definition.
Parameters: - name (str) – Name of job to create. Defaults to “ros”, but you might prefer to use the name of your platform.
- interface (str) – Network interface to bring ROS up with. If specified, the job will come up with that network interface, and ROS_IP will be set to that interface’s IP address. If unspecified, the job will come up on system startup, and ROS_HOSTNAME will be set to the system’s hostname.
- user (str) – Unprivileged user to launch the job as. Defaults to the user creating the job.
- workspace_setup (str) – Location of the workspace setup file to source for the job’s ROS context. Defaults to the current workspace.
- rosdistro (str) – rosdistro to use for the /etc/ros/DISTRO path. Defaults to $ROS_DISTRO from the current environment.
- master_uri (str) – For systems with multiple computers, you may want this job to launch with ROS_MASTER_URI pointing to another machine.
- log_path (str) – The location to set ROS_LOG_DIR to. If changed from the default of using /tmp, it is the user’s responsibility to manage log rotation.
-
add
(package=None, filename=None, glob=None)[source]¶ Add launch or other configuration files to Job.
Files may be specified using relative, absolute, or package-relative paths. Files may also be specified using shell globs.
Parameters: - package (str) – Optionally specify a package to search for the file or glob relative-to.
- filename (str) – Name of a file to add to the job. Relative to the package path, if specified.
- glob (str) – Shell glob of files to add to the job. Relative to the package path, if specified.
-
install
(root='/', sudo='/usr/bin/sudo', Provider=None)[source]¶ Install the job definition to the system.
Parameters: - root (str) – Override the root to install to, useful for testing.
- sudo (str) – Override which sudo is used, useful for testing or for making it use gksudo instead.
- provider (Provider) – Override to use your own generator function for the system file preparation.
-
uninstall
(root='/', sudo='/usr/bin/sudo', Provider=None)[source]¶ Uninstall the job definition from the system.
Parameters: - root (str) – Override the root to uninstall from, useful for testing.
- sudo (str) – Override which sudo is used, useful for testing or for making it use gksudo instead.
- provider (Provider) – Override to use your own generator function for the system file preparation.
Example¶
A minimal example of creating an upstart job using this API:
import robot_upstart
j = robot_upstart.Job()
j.add(package="myrobot_bringup", filename="launch/base.launch")
j.install()
The Job.add()
method may be called multiple times, of course, and
you may alternatively specify a glob, if you’re like to create a job which
launches all of the launchfiles from a package, eg:
import robot_upstart
j = robot_upstart.Job()
j.add(package="myrobot_bringup", glob="launch/*.launch")
j.install()
Finally, if the package
parameter is not specified, then the glob or
filename is relative to the current directory, rather than a package.