Provided by: upstart_1.12.1-0ubuntu4.2_amd64 bug

NAME

       initctl - init daemon control tool

SYNOPSIS

       initctl [OPTION]...  COMMAND [OPTION]...  ARG...

DESCRIPTION

       initctl allows a system administrator to communicate and interact with the Upstart init(8) daemon.

       If  D-Bus  has  been  configured  to allow non-privileged users to invoke all Upstart D-Bus methods, this
       command is also able to manage user jobs.  See init(5) for further details.

       When run as initctl, the first non-option argument is the  COMMAND.   Global  options  may  be  specified
       before or after the command.

       You  may  also create symbolic or hard links to initctl named after commands.  When invoked through these
       links the tool will behave only as that command, with global  and  command-specific  options  intermixed.
       The default installation supplies such links for the start, stop, restart, reload and status commands.

OPTIONS

       --user User  mode.  In  this mode, initctl will talk to the init(8) daemon using the D-Bus private socket
              defined in the UPSTART_SESSION environment variable.

              Note that if the UPSTART_SESSION variable is defined, this option is implied.

       --session
              Connect to init(8) daemon using the existing D-Bus session bus (for testing purposes only).

       --system
              Communication with the init(8) daemon is normally performed  over  a  private  socket  connection.
              This has the advantage of speed and robustness, when issuing commands to start or stop services or
              even reboot the system you do not want to be affected by changes to the D-Bus system bus daemon.

              The disadvantage to using the private socket however is security, init(8) only  permits  the  root
              user  to  communicate over this socket which means that read-only commands such as status and list
              cannot be made by other users.

              The --system option instructs initctl to communicate via the D-Bus system bus rather than over the
              private socket.

              This  is only possible if the system bus daemon is running and if init(8) is connected to it.  The
              advantage is that the default security  configuration  allows  non-root  users  to  use  read-only
              commands.

       --dest Specifies the well-known name of the init(8) daemon when using --system.

              There  is  normally  no  need  to  use  this  option  since  the  init(8)  daemon uses the default
              com.ubuntu.Upstart name.  However it may be useful for debugging.

       --no-wait
              Applies to the start, stop, restart and emit commands.

              Normally initctl will wait for the command to finish before returning.

              For the start, stop and restart commands, finishing means that the named job is  running  (or  has
              finished for tasks) or has been fully stopped.

              For  the  emit command, finishing means that all of the jobs affected by the event are running (or
              have finished for tasks) or have been fully stopped.

              This option instead causes these commands to only wait for the goal change or event to be queued.

       --quiet
              Reduces output of all commands to errors only.

COMMANDS

       start  JOB [KEY=VALUE]...

              Requests that a new instance of the named JOB be started by  changing  its  goal  to  start.   The
              status of the job is displayed on standard output when the command completes.

              See status for a description of the output format.

              The  optional  KEY=VALUE arguments specify environment variables to be passed to the starting job,
              and placed in its environment.  They also serve to specify which instance of  multi-instance  jobs
              should be started.

              Most jobs only permit a single instance; those that use the instance stanza in their configuration
              define a string expanded from  environment  variables  to  name  the  instance.   As  many  unique
              instances  may  be  started  as unique names may be generated by the stanza.  Thus the environment
              variables also serve to select which instance of JOB is to be acted upon.

              If the job is already running, start will return an error.

              When called from the pre-stop stanza of a job configuration, start may be called without  argument
              to cancel the stop.

       stop   JOB [KEY=VALUE]...

              Requests that an instance of the named JOB be stopped by changing its goal to stop.  The status of
              the job is displayed on standard output when the command completes.

              See status for a description of the output format and start for a discussion on instances.

              When called from the pre-start stanza of a job  configuration,  stop  may  be  called  without  an
              argument to cancel the start.

              By  default SIGTERM is sent to the job process. If it does not respond within a reasonable period,
              it will be forcibly stopped by sending SIGKILL.

              This behaviour can be changed using the kill signal and kill  timeout  stanzas.  See  init(5)  for
              further details.

       restart
              JOB [KEY=VALUE]...

              Requests  that  an  instance of the named JOB be restarted by first changing its goal to stop, and
              then changing its goal to start.  The status of the job is displayed on standard output  when  the
              command completes.

              This  command  is  similar  to running stop followed by start with one exception: the job instance
              being restarted will retain its original configuration.  To have the new  instance  run  with  the
              latest job configuration, stop the job and then start it again instead.

              See status for a description of the output format and start for a discussion on instances.

              Note that this command can only be used when there is an instance of JOB, if there is none then it
              returns an error instead of starting a new one.

       reload JOB [KEY=VALUE]...

              Sends the SIGHUP signal to running process of the named JOB instance.

              See start for a discussion on instances.

       status JOB [KEY=VALUE]...

              Requests the status an instance of the named JOB, outputting to standard output.

              See start for a discussion on instances.

              For a single-instance job a line like the following is output:

                job start/running, process 1234

              The job name is given first followed by the current goal and state of the selected instance.   The
              goal  is  either  start  or  stop, the status may be one of waiting, starting, pre-start, spawned,
              post-start, running, pre-stop, stopping, killed or post-stop.

              Table 1 in the Job States section of init(8) summarises job goal and state transitions.

              If the job has an active process, the process id will follow on the same line.  If  the  state  is
              pre-start or post-stop this will be the process id of the equivalent process, otherwise it will be
              the process id of the main process.

                job start/pre-start, process 902

              The post-start and pre-stop states may have multiple processes attached, the extra processes  will
              follow on consecutive lines indented by a tab:

                job start/post-start, process 1234
                        post-start process 1357

              If  there  is  no  main process, they may follow on the same line but will be prefixed to indicate
              that it is not the main process id being given:

                job start/post-start, (post-start) process 1357

              Jobs that permit multiple instances  have  names  for  each  instance,  the  output  is  otherwise
              identical to the above except that the instance name follows the job name in parentheses:

                job (tty1) start/post-start, process 1234
                        post-start process 1357

       list

              Requests a list of the known jobs and instances, outputs the status of each to standard output.

              Note   that  this  command  includes  in  the  enumeration  as-yet-to-run  jobs  (in  other  words
              configuration files for which no job instances have yet been created) in the  output  with  status
              "stop/waiting". In effect such entries denote configuration files which represent potential future
              jobs.

              See status for a description of the output format and start for a discussion on instances.

              No particular order is used for the output, and there is no difference in the output  (other  than
              the instance name appearing in parentheses) between single-instance and multiple-instance jobs.

       emit   EVENT [KEY=VALUE]...

              Requests  that  the  named  EVENT  be  emitted, potentially causing jobs to be started and stopped
              depending on their use of the start on and stop on stanzas in their configuration.

              The optional KEY=VALUE arguments specify environment variables to be included with the  event  and
              thus exported into the environment of any jobs started and stopped by the event.

              The  environment may also serve to specify which instance of multi-instance jobs should be started
              or stopped.  See start for a discussion on instances.

              There is no limitation on the event names that may be emitted with this command, you are  free  to
              invent new events and use them in your job configurations.

              The  most  well-known  event  used  by the default Upstart configuration is the runlevel(7) event.
              This is normally emitted by the telinit(8) and shutdown(8) tools.

       reload-configuration

              Requests that the init(8) daemon reloads its configuration.

              This command is generally not necessary since init(8) watches its configuration  directories  with
              inotify(7) and automatically reloads in cases of changes.

              No jobs will be started by this command.

       version

              Requests and outputs the version of the running init daemon.

       log-priority
              [PRIORITY]

              When  called  with  a PRIORITY argument, it requests that the init(8) daemon log all messages with
              that priority or greater.  This may be used to both increase and decrease  the  volume  of  logged
              messages.

              PRIORITY may be one of debug, info, message, warn, error or fatal.

              When  called  without  argument, it requests the current minimum message priority that the init(8)
              daemon will log and outputs to standard output.

       show-config
              [OPTIONS] [CONF]

              Display emits, start on and stop on job configuration details (in that order)  for  specified  job
              configuration, CONF. If CONF is not specified, list information for all valid job configurations.

              Note that a job configuration is the name of a job configuration file, without the extension. Note
              too that this information is static: it does not refer to any running job.

              For each event emitted, a separate line is displayed beginning with two space characters  followed
              by, 'emits event' where 'event' denotes a single emitted event.

              The  start  on  and  stop  on  conditions  are  listed  on separate lines beginning with two space
              characters and followed by 'start on' and 'stop on' respectively and ending with  the  appropriate
              condition.

              If  a  job  configuration  has  no  emits,  start  on,  or stop on conditions, the name of the job
              configuration will be displayed with no further details.

              Note that the start on and stop on conditions will be fully bracketed, regardless of whether  they
              appear  like  this  in  the  job  configuration file. This is useful to see how the init(8) daemon
              perceives the condition.

              Example output:

              foo
                emits boing
                emits blip
                start on (starting A and (B or C var=2))
                stop on (bar HELLO=world testing=123 or stopping wibble)

              OPTIONS

              -e, --enumerate

                     If specified, rather than listing the precise start on and stop on conditions, outputs  the
                     emits  lines  along with one line for each event or job the CONF in question may be started
                     or stopped by if it were to become a job. If the start on  condition  specifies  a  non-job
                     event,  this  will  be  listed  verbatim,  whereas  for a job event, the name of the job as
                     opposed to the event the job emits will be listed.

                     The type of entity, its triggering event (if  appropriate)  and  its  full  environment  is
                     displayed in brackets following its name for clarity.

                     This  option  is  useful  for tools which generate graphs of relationships between jobs and
                     events. It is also instructive since it shows how the init(8) daemon  has  parsed  the  job
                     configuration file.

                     Example output (an analog of the default output format above):

                     foo
                       emits boing
                       emits blip
                       start on starting (job: A, env:)
                       start on B (job:, env:)
                       start on C (job:, env: var=2)
                       stop on bar (job:, env: HELLO=world testing=123)
                       stop on stopping (job: wibble, event: stopping, env:)

       check-config
              [OPTIONS] [CONF]

              Considers  all  job  configurations  looking for jobs that cannot be started or stopped, given the
              currently available job configurations. This is achieved by considering the start on, stop on  and
              emits stanzas for each job configuration and identifying unreachable scenarios.

              This option is useful for determining the impact of adding or removing job configuration files.

              Note  that  to  use  this  command,  it  is  necessary  to ensure that all job configuration files
              advertise the events they emit correctly.

              If errors are identified, the name of the job configuration will be  displayed.  Subsequent  lines
              will  show  the  failed  conditions for the job configuration, one per line. Condition lines begin
              with two spaces and are followed with either "start on: " or "stop on: ", the word "unknown",  the
              type of entity that is not known and finally its name.

              Note  that  only  job  configurations  that  are  logically  in  error  (those  with unsatisfiable
              conditions) will be displayed. Note too that job configurations that are syntactically invalid may
              trigger an error if they would cause a condition to be in error.

              Assuming job configuration file /etc/init/foo.conf contains the following:

                start on starting grape
                stop on peach

              The check-config command might display:

                foo
                  start on: unknown job grape
                  stop on: unknown event peach

              If  any errors are detected, the exit code will be 1 (one). If all checks pass, the exit code will
              be 0 (zero).

              Note that for complex start on and stop on conditions, this command may give what  appears  to  be
              misleading  output when an error condition is found since all expressions in the failing condition
              that are in error will generate error output. For example, if job configuration /etc/init/bar.conf
              contains the following:

                start on (A and (started B or (starting C or D)))

              And only event A can be satisfied, the output will be:

                bar
                  start on: unknown job B
                  start on: unknown job C
                  start on: unknown event D

              OPTIONS

              -i [EVENTS], --ignore-events [EVENTS]

                     If  specified,  the  argument  should  be  a  list of comma-separated events to ignore when
                     checking the job configuration files.

                     This option may be useful to ignore errors if a particular job configuration file does  not
                     advertise it emits an event.

                     Note that internal events (such as startup(7) and starting(7)) are automatically ignored.

              -w, --warn
                     If specified, treat any unknown jobs and events as errors.

       notify-disk-writeable
              Notify the init(8) daemon that the disk is now writeable. This currently causes the init(8) daemon
              to flush its internal cache of 'early job' output data.  An early job is any  job  which  finishes
              before  the  log  disk  becomes  writeable. If job logging is not disabled, this command should be
              called once the log disk becomes writeable to ensure that output from all early jobs  is  flushed.
              If the data is written successfully to disk, the internal cache is deleted.

       notify-dbus-address
              Notify the init(8) daemon of the D-Bus address it should use to connect to.

              This  command  is  only  permitted  when  running  in  User Session Mode.  See init(5) for further
              details.

       list-env
              [OPTIONS]

              Display a lexicographically sorted list of all variables and their values  in  a  job  environment
              table.

              When  run  from  within  a job, this command will automatically query the job-specific environment
              table; otherwise the global environment table that is applied to all jobs when they first start is
              queried.

              Note  that  the  global job environment table comprises those variables already set in the init(8)
              daemons environment at startup, the minimal set of standard system variables added by the  init(8)
              daemon, and any variables set using set-env.  See init(5) for further details.

              OPTIONS

              -g, --global
                     Operate  on  the  global  job  environment  table. This option is implied when not run from
                     within a job.

       get-env
              [OPTIONS] VARIABLE

              Display the value of the specified variable in a job environment table.

              When run from within a job, this command will automatically  query  the  job-specific  environment
              table; otherwise the global environment table that is applied to all jobs when they first start is
              queried.

              OPTIONS

              -g, --global
                     Operate on the global job environment table. This option  is  implied  when  not  run  from
                     within a job.

       set-env
              [OPTIONS] VARIABLE[=VALUE]

              Adds or updates a variable in a job environment table. Variables set in this way will apply to all
              the subsequently-starting processes for a job.

              This command is only permitted when running  in  User  Session  Mode.   See  init(5)  for  further
              details.

              OPTIONS

              -r, --retain
                     If the specified variable is already set, do not modify it.

              -g, --global
                     Operate  on  the  global  job  environment  table  and all existing running job environment
                     tables. This option is implied when not run from within a job.

                     This is an advanced option whose use is discouraged since it can change the environment  of
                     a  job  as it moves between different process stages (for example between pre-start and the
                     main process). See init(5) for further details.

       unset-env
              [OPTIONS] VARIABLE

              Remove the specified variable from a job environment table. If the variable does not already exist
              in the table, no change will be made.

              This  command  is  only  permitted  when  running  in  User Session Mode.  See init(5) for further
              details.

              OPTIONS

              -r, --retain
                     If the specified variable is already set, do not modify it.

              -g, --global
                     Operate on the global job  environment  table   and  all  existing  running  jobenvironment
                     tables. This option is implied when not run from within a job.

                     This  is an advanced option whose use is discouraged since it can change the environment of
                     a job as it moves between different process stages (for example between pre-start  and  the
                     main process). See init(5) for further details.

       reset-env
              [OPTIONS]

              Discards  all  changes  make  to  a  job  environment table, setting it back to its default set of
              variables and values.

              This command is only permitted when running  in  User  Session  Mode.   See  init(5)  for  further
              details.

              Note  that the effect of the Session Init process that manages the User Session Mode restarting is
              equivalent to this command having been called.

              OPTIONS

              -r, --retain
                     If the specified variable is already set, do not modify it.

              -g, --global
                     Operate on the global job environment table. This option  is  implied  when  not  run  from
                     within a job.

                     Note that unlike set-env and unset-env, this option does not modify running job environment
                     tables.

       list-sessions

              List the pid of the Session Init process followed by the value of UPSTART_SESSION in use for  that
              session  separted  by a space character. Session files relating to non-longer running Session Init
              processes are considered 'stale' and are not listed (although when run using --verbose,  the  full
              path of the stale session file is displayed).

       usage  JOB [KEY=VALUE]...

              Show  usage information for the named JOB.  If the job specified does not define the usage stanza,
              a blank usage will be displayed.

              Example output for a job that specifies the usage stanza is shown below. See init(5)  for  further
              details of the usage stanza:

                Usage: tty DEV=ttyX - where X is console id

AUTHOR

       Written by Scott James Remnant <scott@netsplit.com> and James Hunt <james.hunt@canonical.com>.

REPORTING BUGS

       Report bugs at <https://launchpad.net/upstart/+bugs>

COPYRIGHT

       Copyright © 2009-2013 Canonical Ltd.
       This  is  free  software;  see  the  source  for  copying conditions.  There is NO warranty; not even for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       init(5) init(8) telinit(8) shutdown(8)