Merge lp:~jamesodhunt/upstart/bug-1238078 into lp:upstart

Proposed by James Hunt
Status: Merged
Merged at revision: 1561
Proposed branch: lp:~jamesodhunt/upstart/bug-1238078
Merge into: lp:upstart
Diff against target: 19782 lines (+19467/-52)
11 files modified
ChangeLog (+52/-5)
init/Makefile.am (+2/-1)
init/job_class.c (+67/-5)
init/job_class.h (+8/-0)
init/state.c (+25/-1)
init/tests/data/upstart-1.11.json (+19034/-0)
init/tests/test_state.c (+85/-1)
test/test_util_common.c (+89/-35)
test/test_util_common.h (+7/-2)
util/man/initctl.8 (+2/-1)
util/tests/test_initctl.c (+96/-1)
To merge this branch: bzr merge lp:~jamesodhunt/upstart/bug-1238078
Reviewer Review Type Date Requested Status
Steve Langasek Needs Fixing
Review via email: mp+190723@code.launchpad.net

Description of the change

Fix for bug 1238078:

------------------------------------------------------------
revno: 1545
committer: James Hunt <email address hidden>
branch nick: upstart-bug-1238078
timestamp: Fri 2013-10-11 17:17:19 +0100
message:
  * test/test_util_common.c:
    - session_init_reexec(): New.
    - set_upstart_session(): Whitespace.
  * test/test_util_common.h: REEXEC_UPSTART(): Update to handle Session
    Inits too.
  * util/man/initctl.8: Clarify 'set-env' behaviour.
  * util/tests/test_initctl.c: New tests:
    - "ensure 'set-env' persists across session-init re-exec".
    - "ensure 'set-env --global' persists across session-init re-exec".
------------------------------------------------------------
revno: 1544
fixes bug: https://launchpad.net/bugs/1238078
committer: James Hunt <email address hidden>
branch nick: upstart-bug-1238078
timestamp: Fri 2013-10-11 14:35:51 +0100
message:
  * init/job_class.c:
    - job_class_serialise_job_environ(): New function to serialise global
      job environment table.
    - job_class_deserialise_job_environ(): New function to deserialise global
      job environment table.
  * init/state.c:
    - state_to_string(): Serialise global job environment table
      (LP: #1238078).
    - state_from_string(): Deserialise global job environment table.
    - _state_deserialise_str_array(): Don't attempt to free array if type
      check fails.

To post a comment you must log in.
Revision history for this message
James Hunt (jamesodhunt) wrote :

I need to add a few more .json test files before this is merged.

Revision history for this message
Steve Langasek (vorlon) wrote :

per above :)

review: Needs Fixing
Revision history for this message
James Hunt (jamesodhunt) wrote :

New tests added.

Revision history for this message
Steve Langasek (vorlon) wrote :

Hi James,

What's the difference between the upstart-reload-signal.json test and the upstart-no-job-environ.json test? AFAICS, there isn't one. If the serialization format hasn't changed between 1.9 and 1.10, we shouldn't add a redundant test here, it's unnecessary and confusing.

Also, perhaps it would be a good idea to name these json data tests after the upstream versions they correspond to, so that it's clearer? For instance, upstart-reload-signal.json could be called 'upstart-1.9.json', and upstart-with-job-environ.json could be called 'upstart-1.11.json'.

I'm not sure if (or how) the separate session-init tests are needed. They contain different data (since they're obviously taken from a running session init's state rather than a system init), but there shouldn't be any differences in the *format*, should there? If there are no differences, then I think the tests are redundant and should be omitted. If there are differences, please call this out more clearly so that it's understood at a glance what we're testing for.

I haven't had a chance yet to review the code; will do that tomorrow and send any further comments.

review: Needs Fixing
lp:~jamesodhunt/upstart/bug-1238078 updated
1547. By James Hunt

* init/tests/test_state.c: Removed some redundant JSON upgrade
  tests and renamed some existing data files to reflect the
  serialisation format version they encapsulate.

1548. By James Hunt

* Sync with lp:upstart.

Revision history for this message
James Hunt (jamesodhunt) wrote :

Hi Steve,

> What's the difference between the upstart-reload-signal.json test and
> the upstart-no-job-environ.json test? AFAICS, there isn't one. If the
> serialization format hasn't changed between 1.9 and 1.10, we shouldn't
> add a redundant test here, it's unnecessary and confusing.
Ack - gone.

>
> Also, perhaps it would be a good idea to name these json data tests
> after the upstream versions they correspond to, so that it's clearer?
> For instance, upstart-reload-signal.json could be called
> 'upstart-1.9.json', and upstart-with-job-environ.json could be called
> 'upstart-1.11.json'.
Agreed. We just need to remember to update upstart-1.11.json if new
serialisation data is added prior to 1.11 being released.

> I'm not sure if (or how) the separate session-init tests are needed.
> They contain different data (since they're obviously taken from a
> running session init's state rather than a system init), but there
> shouldn't be any differences in the *format*, should there? If there are
> no differences, then I think the tests are redundant and should be
> omitted. If there are differences, please call this out more clearly so
> that it's understood at a glance what we're testing for.
Right - there is no difference in the format of the data in the session
init .json files: the Session Init tests were an attempt to ensure
correct deserialisation of a "non-default" job environment table (which
can only be non-default when running as a Session Init). However, I
think you are right: these tests aren't really adding much since to
test that setup. Really, we need to be able to feed the .json files
to an actual Session Init process and we don't currently have that
ability.

> I haven't had a chance yet to review the code; will do that tomorrow and
> send any further comments.
Thanks!

Branch updated.

Revision history for this message
Steve Langasek (vorlon) wrote :

Ok, finally found the time to fully review this patch. The revised json looks good. I have just a couple other comments:

- "_state_deserialise_str_array(): Don't attempt to free array if type check fails." It's not at all clear to me how this relates to the rest of the code changes. If this is fixing a problem exposed by the addition of the environment serialization, it would be better if this were made more explicit - and probably kept in a commit all to its own. (This does not warrant redoing the branch, but please keep in mind for the future.)

- I don't understand the added test_initctl test case. You appear to be dynamically creating a job that has both an 'exec' and a 'script' stanza. I don't know if this is an accident or if you're relying on some particular behavior of upstart here, but if it's the latter I think this should be done some other way because the current job definition is quite opaque. If this *isn't* relying on some upstart behavior that I don't know about, then I suspect this job doesn't actually do what you intend anyway, because it talks about using a flag file to notify the job that upstart has re-execed "to allow it to move out of pre-start", but the only place the job watches for this file after creating it is in a post-stop script. So I suspect that the test succeeds but is not actually testing what it's meant to because of a broken job definition. Please take a close look at this.

- Finally, you've added a commented-out call to a non-existent test_reexec_job_env function, which should be dropped from the patch.

review: Needs Fixing
lp:~jamesodhunt/upstart/bug-1238078 updated
1549. By James Hunt

* test/test_util_common.h: WAIT_FOR_FILE(): Check @path not logfile.

1550. By James Hunt

* util/tests/test_initctl.c: test_reexec(): Fixed behaviour and comments
  for test "ensure 'set-env --global' persists across session-init
  re-exec".

1551. By James Hunt

* Sync with lp:upstart.

Revision history for this message
James Hunt (jamesodhunt) wrote :

> - "_state_deserialise_str_array(): Don't attempt to free array if type check fails." It's not at all clear to me how this relates to the rest of the code changes. If this is fixing a problem exposed by the addition of the environment serialization, it would be better if this were made more explicit - and probably kept in a commit all to its own. (This does not warrant redoing the branch, but please keep in mind for the future.)
No, I just noticed this additional issue whilst fixing the main bug. I guess it should prolly have had more prominence and a separate commit, but atleast the bug is now fixed :)

> - I don't understand the added test_initctl test case. You appear to be dynamically creating a job that has both an 'exec' and a 'script' stanza. I don't know if this is an accident or if you're relying on some particular behavior of upstart here, but if it's the latter I think this should be done some other way because the current job definition is quite opaque. If this *isn't* relying on some upstart behavior that I don't know about, then I suspect this job doesn't actually do what you intend anyway, because it talks about using a flag file to notify the job that upstart has re-execed "to allow it to move out of pre-start", but the only place the job watches for this file after creating it is in a post-stop script. So I suspect that the test succeeds but is not actually testing what it's meant to because of a broken job definition. Please take a close look at this.
Good catch - comments were misleading and indeed the auto-generated job was incorrect.

> - Finally, you've added a commented-out call to a non-existent test_reexec_job_env function, which should be dropped from the patch.
Done.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2013-11-03 02:56:57 +0000
+++ ChangeLog 2013-11-04 09:35:50 +0000
@@ -1,9 +1,10 @@
12013-10-25 Steve Langasek <steve.langasek@ubuntu.com>12013-11-04 James Hunt <james.hunt@ubuntu.com>
22
3 * init/main.c, init/system.c, init/system.h: allow mount options3 * test/test_util_common.h: WAIT_FOR_FILE(): Check @path not
4 to be passed to system_mount(), and pass the right options when4 logfile.
5 mounting /dev/pts to match the permissions set by either5 * util/tests/test_initctl.c: test_reexec(): Fixed behaviour and
6 initramfs-tools or mountall. LP: #1244763.6 comments for test "ensure 'set-env --global' persists across
7 session-init re-exec".
78
82013-11-03 James Hunt <james.hunt@ubuntu.com>92013-11-03 James Hunt <james.hunt@ubuntu.com>
910
@@ -59,6 +60,13 @@
59 * scripts/tests/test_pyupstart_session_init.py: Added file bridge tests60 * scripts/tests/test_pyupstart_session_init.py: Added file bridge tests
60 for directory creation, modification and deletion.61 for directory creation, modification and deletion.
6162
632013-10-25 Steve Langasek <steve.langasek@ubuntu.com>
64
65 * init/main.c, init/system.c, init/system.h: allow mount options
66 to be passed to system_mount(), and pass the right options when
67 mounting /dev/pts to match the permissions set by either
68 initramfs-tools or mountall. LP: #1244763.
69
622013-10-24 James Hunt <james.hunt@ubuntu.com>702013-10-24 James Hunt <james.hunt@ubuntu.com>
6371
64 * init/environ.c: Comment.72 * init/environ.c: Comment.
@@ -75,6 +83,9 @@
75 - "remove first bare name entry from table of size 2"83 - "remove first bare name entry from table of size 2"
76 - "remove last name=value entry from table of size 2"84 - "remove last name=value entry from table of size 2"
77 - "remove last bare name entry from table of size 2"85 - "remove last bare name entry from table of size 2"
86 * init/tests/test_state.c: Removed some redundant JSON upgrade
87 tests and renamed some existing data files to reflect the
88 serialisation format version they encapsulate.
78 * test/test_util_common.c: get_initctl(): Added environment checks.89 * test/test_util_common.c: get_initctl(): Added environment checks.
7990
802013-10-23 Dmitrijs Ledkovs <xnox@ubuntu.com>912013-10-23 Dmitrijs Ledkovs <xnox@ubuntu.com>
@@ -87,6 +98,42 @@
87 * util/initctl.h: IS_INIT_EVENT(): Ignore session end event when98 * util/initctl.h: IS_INIT_EVENT(): Ignore session end event when
88 running in user mode (for 'check-config').99 running in user mode (for 'check-config').
89100
1012013-10-14 James Hunt <james.hunt@ubuntu.com>
102
103 * init/job_class.c: job_class_environment_clear(): Utility function
104 exposed primarily to allow tests to invalidate job_environ.
105 * init/tests/test_state.c:
106 - Added appropriate calls to job_class_environment_clear().
107 - New JSON data tests added:
108 - upstart-no-job-environ.json
109 - upstart-with-job-environ.json
110 - session-init-no-job-environ.json
111 - session-init-with-job-environ.json
112 - session-init-with-modified-job-environ.json
113
1142013-10-11 James Hunt <james.hunt@ubuntu.com>
115
116 * init/job_class.c:
117 - job_class_serialise_job_environ(): New function to serialise global
118 job environment table.
119 - job_class_deserialise_job_environ(): New function to deserialise global
120 job environment table.
121 * init/state.c:
122 - state_to_string(): Serialise global job environment table
123 (LP: #1238078).
124 - state_from_string(): Deserialise global job environment table.
125 - _state_deserialise_str_array(): Don't attempt to free array if type
126 check fails.
127 * test/test_util_common.c:
128 - session_init_reexec(): New.
129 - set_upstart_session(): Whitespace.
130 * test/test_util_common.h: REEXEC_UPSTART(): Update to handle Session
131 Inits too.
132 * util/man/initctl.8: Clarify 'set-env' behaviour.
133 * util/tests/test_initctl.c: New tests:
134 - "ensure 'set-env' persists across session-init re-exec".
135 - "ensure 'set-env --global' persists across session-init re-exec".
136
902013-10-04 Steve Langasek <steve.langasek@ubuntu.com>1372013-10-04 Steve Langasek <steve.langasek@ubuntu.com>
91138
92 * extra/upstart-local-bridge.c: use SOCKET_PATH in our event139 * extra/upstart-local-bridge.c: use SOCKET_PATH in our event
93140
=== modified file 'init/Makefile.am'
--- init/Makefile.am 2013-08-23 09:22:32 +0000
+++ init/Makefile.am 2013-11-04 09:35:50 +0000
@@ -144,7 +144,8 @@
144 $(TEST_DATA_DIR)/upstart-session.json \144 $(TEST_DATA_DIR)/upstart-session.json \
145 $(TEST_DATA_DIR)/upstart-session2.json \145 $(TEST_DATA_DIR)/upstart-session2.json \
146 $(TEST_DATA_DIR)/upstart-session-infinity.json \146 $(TEST_DATA_DIR)/upstart-session-infinity.json \
147 $(TEST_DATA_DIR)/upstart-reload-signal.json147 $(TEST_DATA_DIR)/upstart-1.9.json \
148 $(TEST_DATA_DIR)/upstart-1.11.json
148149
149upstart_test_programs = \150upstart_test_programs = \
150 test_system \151 test_system \
151152
=== modified file 'init/job_class.c'
--- init/job_class.c 2013-10-18 09:13:36 +0000
+++ init/job_class.c 2013-11-04 09:35:50 +0000
@@ -145,12 +145,22 @@
145void145void
146job_class_environment_reset (void)146job_class_environment_reset (void)
147{147{
148 if (job_environ)148 job_class_environment_clear ();
149 job_class_environment_init ();
150}
151
152/**
153 * job_class_environment_clear:
154 *
155 * Clear the environment table.
156 **/
157void
158job_class_environment_clear (void)
159{
160 if (job_environ) {
149 nih_free (job_environ);161 nih_free (job_environ);
150162 job_environ = NULL;
151 job_environ = NULL;163 }
152
153 job_class_environment_init ();
154}164}
155165
156/**166/**
@@ -1809,6 +1819,58 @@
1809 return 0;1819 return 0;
1810}1820}
18111821
1822/**
1823 * job_class_serialise_job_environ:
1824 *
1825 * Serialise the global job environment table.
1826 *
1827 * Returns: JSON-serialised global job environment table, or NULL on error.
1828 **/
1829json_object *
1830job_class_serialise_job_environ (void)
1831{
1832 json_object *json;
1833
1834 job_class_environment_init ();
1835
1836 json = state_serialise_str_array (job_environ);
1837 if (! json)
1838 goto error;
1839
1840 return json;
1841
1842error:
1843 json_object_put (json);
1844 return NULL;
1845}
1846
1847/**
1848 * job_class_deserialise_job_environ
1849 * @json: JSON-serialised global job environment table to deserialise.
1850 *
1851 * Create the global job environment table from provided JSON.
1852 *
1853 * Returns: 0 on success, < 0 on error.
1854 **/
1855int
1856job_class_deserialise_job_environ (json_object *json)
1857{
1858 nih_assert (json);
1859
1860 nih_assert (! job_environ);
1861
1862 if (! state_check_json_type (json, array))
1863 goto error;
1864
1865 if (! state_deserialise_str_array (NULL, json, &job_environ))
1866 goto error;
1867
1868 return 0;
1869
1870error:
1871 return -1;
1872}
1873
18121874
1813/**1875/**
1814 * job_class_serialise:1876 * job_class_serialise:
18151877
=== modified file 'init/job_class.h'
--- init/job_class.h 2013-07-21 23:54:16 +0000
+++ init/job_class.h 2013-11-04 09:35:50 +0000
@@ -239,6 +239,8 @@
239239
240void job_class_environment_reset (void);240void job_class_environment_reset (void);
241241
242void job_class_environment_clear (void);
243
242int job_class_environment_set (const char *var, int replace);244int job_class_environment_set (const char *var, int replace);
243int job_class_environment_unset (const char *name);245int job_class_environment_unset (const char *name);
244246
@@ -360,6 +362,12 @@
360JobClass * job_class_get (const char *name, Session *session)362JobClass * job_class_get (const char *name, Session *session)
361 __attribute__ ((warn_unused_result));363 __attribute__ ((warn_unused_result));
362364
365json_object * job_class_serialise_job_environ (void)
366 __attribute__ ((warn_unused_result));
367
368int job_class_deserialise_job_environ (json_object *json)
369 __attribute__ ((warn_unused_result));
370
363void job_class_prepare_reexec (void);371void job_class_prepare_reexec (void);
364372
365time_t job_class_max_kill_timeout (void)373time_t job_class_max_kill_timeout (void)
366374
=== modified file 'init/state.c'
--- init/state.c 2013-07-15 14:54:39 +0000
+++ init/state.c 2013-11-04 09:35:50 +0000
@@ -339,6 +339,7 @@
339state_to_string (char **json_string, size_t *len)339state_to_string (char **json_string, size_t *len)
340{340{
341 json_object *json;341 json_object *json;
342 json_object *json_job_environ;
342 const char *value;343 const char *value;
343344
344 nih_assert (json_string);345 nih_assert (json_string);
@@ -365,6 +366,16 @@
365366
366 json_object_object_add (json, "events", json_events);367 json_object_object_add (json, "events", json_events);
367368
369 json_job_environ = job_class_serialise_job_environ ();
370
371 if (! json_job_environ) {
372 nih_error ("%s global job environment",
373 _("Failed to serialise"));
374 goto error;
375 }
376
377 json_object_object_add (json, "job_environment", json_job_environ);
378
368 json_classes = job_class_serialise_all ();379 json_classes = job_class_serialise_all ();
369380
370 if (! json_classes) {381 if (! json_classes) {
@@ -415,6 +426,7 @@
415{426{
416 int ret = -1;427 int ret = -1;
417 json_object *json;428 json_object *json;
429 json_object *json_job_environ;
418 enum json_tokener_error error;430 enum json_tokener_error error;
419431
420 nih_assert (state);432 nih_assert (state);
@@ -458,6 +470,18 @@
458 nih_warn ("%s", _("No ConfSources present in state data"));470 nih_warn ("%s", _("No ConfSources present in state data"));
459 }471 }
460472
473 json_job_environ = json_object_object_get (json, "job_environment");
474
475 if (json_job_environ) {
476 if (job_class_deserialise_job_environ (json_job_environ) < 0) {
477 nih_error ("%s global job environment",
478 _("Failed to deserialise"));
479 goto out;
480 }
481 } else {
482 nih_warn ("%s", _("No global job environment data present in state data"));
483 }
484
461 if (job_class_deserialise_all (json) < 0) {485 if (job_class_deserialise_all (json) < 0) {
462 nih_error ("%s JobClasses", _("Failed to deserialise"));486 nih_error ("%s JobClasses", _("Failed to deserialise"));
463 goto out;487 goto out;
@@ -610,7 +634,7 @@
610 nih_assert (len);634 nih_assert (len);
611635
612 if (! state_check_json_type (json, array))636 if (! state_check_json_type (json, array))
613 goto error;637 return -1;
614638
615 *len = json_object_array_length (json);639 *len = json_object_array_length (json);
616640
617641
=== added file 'init/tests/data/upstart-1.11.json'
--- init/tests/data/upstart-1.11.json 1970-01-01 00:00:00 +0000
+++ init/tests/data/upstart-1.11.json 2013-11-04 09:35:50 +0000
@@ -0,0 +1,19034 @@
1{
2 "sessions" : [],
3 "conf_sources" : [
4 {
5 "conf_files" : [],
6 "session" : 0,
7 "flag" : 1,
8 "type" : "CONF_FILE",
9 "path" : "//etc/init.conf"
10 },
11 {
12 "conf_files" : [
13 {
14 "conf_source" : 1,
15 "job_class" : {
16 "session" : 0,
17 "name" : "mounted-debugfs"
18 },
19 "flag" : 1,
20 "path" : "//etc/init/mounted-debugfs.conf"
21 },
22 {
23 "conf_source" : 1,
24 "job_class" : {
25 "session" : 0,
26 "name" : "mountnfs.sh"
27 },
28 "flag" : 1,
29 "path" : "//etc/init/mountnfs.sh.conf"
30 },
31 {
32 "conf_source" : 1,
33 "job_class" : {
34 "session" : 0,
35 "name" : "pulseaudio"
36 },
37 "flag" : 1,
38 "path" : "//etc/init/pulseaudio.conf"
39 },
40 {
41 "conf_source" : 1,
42 "job_class" : {
43 "session" : 0,
44 "name" : "rc-sysinit"
45 },
46 "flag" : 1,
47 "path" : "//etc/init/rc-sysinit.conf"
48 },
49 {
50 "conf_source" : 1,
51 "job_class" : {
52 "session" : 0,
53 "name" : "setvtrgb"
54 },
55 "flag" : 1,
56 "path" : "//etc/init/setvtrgb.conf"
57 },
58 {
59 "conf_source" : 1,
60 "job_class" : {
61 "session" : 0,
62 "name" : "lightdm"
63 },
64 "flag" : 1,
65 "path" : "//etc/init/lightdm.conf"
66 },
67 {
68 "conf_source" : 1,
69 "job_class" : {
70 "session" : 0,
71 "name" : "mountdevsubfs.sh"
72 },
73 "flag" : 1,
74 "path" : "//etc/init/mountdevsubfs.sh.conf"
75 },
76 {
77 "conf_source" : 1,
78 "job_class" : {
79 "session" : 0,
80 "name" : "mounted-proc"
81 },
82 "flag" : 1,
83 "path" : "//etc/init/mounted-proc.conf"
84 },
85 {
86 "conf_source" : 1,
87 "job_class" : {
88 "session" : 0,
89 "name" : "network-interface"
90 },
91 "flag" : 1,
92 "path" : "//etc/init/network-interface.conf"
93 },
94 {
95 "conf_source" : 1,
96 "job_class" : {
97 "session" : 0,
98 "name" : "plymouth-log"
99 },
100 "flag" : 1,
101 "path" : "//etc/init/plymouth-log.conf"
102 },
103 {
104 "conf_source" : 1,
105 "job_class" : {
106 "session" : 0,
107 "name" : "alsa-state"
108 },
109 "flag" : 1,
110 "path" : "//etc/init/alsa-state.conf"
111 },
112 {
113 "conf_source" : 1,
114 "job_class" : {
115 "session" : 0,
116 "name" : "control-alt-delete"
117 },
118 "flag" : 1,
119 "path" : "//etc/init/control-alt-delete.conf"
120 },
121 {
122 "conf_source" : 1,
123 "job_class" : {
124 "session" : 0,
125 "name" : "failsafe"
126 },
127 "flag" : 1,
128 "path" : "//etc/init/failsafe.conf"
129 },
130 {
131 "conf_source" : 1,
132 "job_class" : {
133 "session" : 0,
134 "name" : "hwclock-save"
135 },
136 "flag" : 1,
137 "path" : "//etc/init/hwclock-save.conf"
138 },
139 {
140 "conf_source" : 1,
141 "job_class" : {
142 "session" : 0,
143 "name" : "irqbalance"
144 },
145 "flag" : 1,
146 "path" : "//etc/init/irqbalance.conf"
147 },
148 {
149 "conf_source" : 1,
150 "job_class" : {
151 "session" : 0,
152 "name" : "networking"
153 },
154 "flag" : 1,
155 "path" : "//etc/init/networking.conf"
156 },
157 {
158 "conf_source" : 1,
159 "job_class" : {
160 "session" : 0,
161 "name" : "ufw"
162 },
163 "flag" : 1,
164 "path" : "//etc/init/ufw.conf"
165 },
166 {
167 "conf_source" : 1,
168 "job_class" : {
169 "session" : 0,
170 "name" : "avahi-cups-reload"
171 },
172 "flag" : 1,
173 "path" : "//etc/init/avahi-cups-reload.conf"
174 },
175 {
176 "conf_source" : 1,
177 "job_class" : {
178 "session" : 0,
179 "name" : "console-font"
180 },
181 "flag" : 1,
182 "path" : "//etc/init/console-font.conf"
183 },
184 {
185 "conf_source" : 1,
186 "job_class" : {
187 "session" : 0,
188 "name" : "modemmanager"
189 },
190 "flag" : 1,
191 "path" : "//etc/init/modemmanager.conf"
192 },
193 {
194 "conf_source" : 1,
195 "job_class" : {
196 "session" : 0,
197 "name" : "mounted-run"
198 },
199 "flag" : 1,
200 "path" : "//etc/init/mounted-run.conf"
201 },
202 {
203 "conf_source" : 1,
204 "job_class" : {
205 "session" : 0,
206 "name" : "mounted-tmp"
207 },
208 "flag" : 1,
209 "path" : "//etc/init/mounted-tmp.conf"
210 },
211 {
212 "conf_source" : 1,
213 "job_class" : {
214 "session" : 0,
215 "name" : "rc"
216 },
217 "flag" : 1,
218 "path" : "//etc/init/rc.conf"
219 },
220 {
221 "conf_source" : 1,
222 "job_class" : {
223 "session" : 0,
224 "name" : "rsyslog"
225 },
226 "flag" : 1,
227 "path" : "//etc/init/rsyslog.conf"
228 },
229 {
230 "conf_source" : 1,
231 "job_class" : {
232 "session" : 0,
233 "name" : "shutdown"
234 },
235 "flag" : 1,
236 "path" : "//etc/init/shutdown.conf"
237 },
238 {
239 "conf_source" : 1,
240 "job_class" : {
241 "session" : 0,
242 "name" : "plymouth"
243 },
244 "flag" : 1,
245 "path" : "//etc/init/plymouth.conf"
246 },
247 {
248 "conf_source" : 1,
249 "job_class" : {
250 "session" : 0,
251 "name" : "anacron"
252 },
253 "flag" : 1,
254 "path" : "//etc/init/anacron.conf"
255 },
256 {
257 "conf_source" : 1,
258 "job_class" : {
259 "session" : 0,
260 "name" : "mountall-shell"
261 },
262 "flag" : 1,
263 "path" : "//etc/init/mountall-shell.conf"
264 },
265 {
266 "conf_source" : 1,
267 "job_class" : {
268 "session" : 0,
269 "name" : "mounted-var"
270 },
271 "flag" : 1,
272 "path" : "//etc/init/mounted-var.conf"
273 },
274 {
275 "conf_source" : 1,
276 "job_class" : {
277 "session" : 0,
278 "name" : "plymouth-upstart-bridge"
279 },
280 "flag" : 1,
281 "path" : "//etc/init/plymouth-upstart-bridge.conf"
282 },
283 {
284 "conf_source" : 1,
285 "job_class" : {
286 "session" : 0,
287 "name" : "ssh"
288 },
289 "flag" : 1,
290 "path" : "//etc/init/ssh.conf"
291 },
292 {
293 "conf_source" : 1,
294 "job_class" : {
295 "session" : 0,
296 "name" : "tty1"
297 },
298 "flag" : 1,
299 "path" : "//etc/init/tty1.conf"
300 },
301 {
302 "conf_source" : 1,
303 "job_class" : {
304 "session" : 0,
305 "name" : "udev-fallback-graphics"
306 },
307 "flag" : 1,
308 "path" : "//etc/init/udev-fallback-graphics.conf"
309 },
310 {
311 "conf_source" : 1,
312 "job_class" : {
313 "session" : 0,
314 "name" : "udev-finish"
315 },
316 "flag" : 1,
317 "path" : "//etc/init/udev-finish.conf"
318 },
319 {
320 "conf_source" : 1,
321 "job_class" : {
322 "session" : 0,
323 "name" : "wait-for-state"
324 },
325 "flag" : 1,
326 "path" : "//etc/init/wait-for-state.conf"
327 },
328 {
329 "conf_source" : 1,
330 "job_class" : {
331 "session" : 0,
332 "name" : "acpid"
333 },
334 "flag" : 1,
335 "path" : "//etc/init/acpid.conf"
336 },
337 {
338 "conf_source" : 1,
339 "job_class" : {
340 "session" : 0,
341 "name" : "alsa-restore"
342 },
343 "flag" : 1,
344 "path" : "//etc/init/alsa-restore.conf"
345 },
346 {
347 "conf_source" : 1,
348 "job_class" : {
349 "session" : 0,
350 "name" : "alsa-store"
351 },
352 "flag" : 1,
353 "path" : "//etc/init/alsa-store.conf"
354 },
355 {
356 "conf_source" : 1,
357 "job_class" : {
358 "session" : 0,
359 "name" : "apport"
360 },
361 "flag" : 1,
362 "path" : "//etc/init/apport.conf"
363 },
364 {
365 "conf_source" : 1,
366 "job_class" : {
367 "session" : 0,
368 "name" : "cron"
369 },
370 "flag" : 1,
371 "path" : "//etc/init/cron.conf"
372 },
373 {
374 "conf_source" : 1,
375 "job_class" : {
376 "session" : 0,
377 "name" : "mountall-bootclean.sh"
378 },
379 "flag" : 1,
380 "path" : "//etc/init/mountall-bootclean.sh.conf"
381 },
382 {
383 "conf_source" : 1,
384 "job_class" : {
385 "session" : 0,
386 "name" : "plymouth-stop"
387 },
388 "flag" : 1,
389 "path" : "//etc/init/plymouth-stop.conf"
390 },
391 {
392 "conf_source" : 1,
393 "job_class" : {
394 "session" : 0,
395 "name" : "procps"
396 },
397 "flag" : 1,
398 "path" : "//etc/init/procps.conf"
399 },
400 {
401 "conf_source" : 1,
402 "job_class" : {
403 "session" : 0,
404 "name" : "hwclock"
405 },
406 "flag" : 1,
407 "path" : "//etc/init/hwclock.conf"
408 },
409 {
410 "conf_source" : 1,
411 "job_class" : {
412 "session" : 0,
413 "name" : "james"
414 },
415 "flag" : 1,
416 "path" : "//etc/init/james.conf"
417 },
418 {
419 "conf_source" : 1,
420 "job_class" : {
421 "session" : 0,
422 "name" : "container-detect"
423 },
424 "flag" : 1,
425 "path" : "//etc/init/container-detect.conf"
426 },
427 {
428 "conf_source" : 1,
429 "job_class" : {
430 "session" : 0,
431 "name" : "cups-browsed"
432 },
433 "flag" : 1,
434 "path" : "//etc/init/cups-browsed.conf"
435 },
436 {
437 "conf_source" : 1,
438 "job_class" : {
439 "session" : 0,
440 "name" : "mountall"
441 },
442 "flag" : 1,
443 "path" : "//etc/init/mountall.conf"
444 },
445 {
446 "conf_source" : 1,
447 "job_class" : {
448 "session" : 0,
449 "name" : "mtab.sh"
450 },
451 "flag" : 1,
452 "path" : "//etc/init/mtab.sh.conf"
453 },
454 {
455 "conf_source" : 1,
456 "job_class" : {
457 "session" : 0,
458 "name" : "rcS"
459 },
460 "flag" : 1,
461 "path" : "//etc/init/rcS.conf"
462 },
463 {
464 "conf_source" : 1,
465 "job_class" : {
466 "session" : 0,
467 "name" : "whoopsie"
468 },
469 "flag" : 1,
470 "path" : "//etc/init/whoopsie.conf"
471 },
472 {
473 "conf_source" : 1,
474 "job_class" : {
475 "session" : 0,
476 "name" : "mountall.sh"
477 },
478 "flag" : 1,
479 "path" : "//etc/init/mountall.sh.conf"
480 },
481 {
482 "conf_source" : 1,
483 "job_class" : {
484 "session" : 0,
485 "name" : "network-interface-security"
486 },
487 "flag" : 1,
488 "path" : "//etc/init/network-interface-security.conf"
489 },
490 {
491 "conf_source" : 1,
492 "job_class" : {
493 "session" : 0,
494 "name" : "tty5"
495 },
496 "flag" : 1,
497 "path" : "//etc/init/tty5.conf"
498 },
499 {
500 "conf_source" : 1,
501 "job_class" : {
502 "session" : 0,
503 "name" : "friendly-recovery"
504 },
505 "flag" : 1,
506 "path" : "//etc/init/friendly-recovery.conf"
507 },
508 {
509 "conf_source" : 1,
510 "job_class" : {
511 "session" : 0,
512 "name" : "mountall-reboot"
513 },
514 "flag" : 1,
515 "path" : "//etc/init/mountall-reboot.conf"
516 },
517 {
518 "conf_source" : 1,
519 "job_class" : {
520 "session" : 0,
521 "name" : "mounted-dev"
522 },
523 "flag" : 1,
524 "path" : "//etc/init/mounted-dev.conf"
525 },
526 {
527 "conf_source" : 1,
528 "job_class" : {
529 "session" : 0,
530 "name" : "tty4"
531 },
532 "flag" : 1,
533 "path" : "//etc/init/tty4.conf"
534 },
535 {
536 "conf_source" : 1,
537 "job_class" : {
538 "session" : 0,
539 "name" : "ureadahead-other"
540 },
541 "flag" : 1,
542 "path" : "//etc/init/ureadahead-other.conf"
543 },
544 {
545 "conf_source" : 1,
546 "job_class" : {
547 "session" : 0,
548 "name" : "avahi-daemon"
549 },
550 "flag" : 1,
551 "path" : "//etc/init/avahi-daemon.conf"
552 },
553 {
554 "conf_source" : 1,
555 "job_class" : {
556 "session" : 0,
557 "name" : "emergency-console"
558 },
559 "flag" : 1,
560 "path" : "//etc/init/emergency-console.conf"
561 },
562 {
563 "conf_source" : 1,
564 "job_class" : {
565 "session" : 0,
566 "name" : "failsafe-x"
567 },
568 "flag" : 1,
569 "path" : "//etc/init/failsafe-x.conf"
570 },
571 {
572 "conf_source" : 1,
573 "job_class" : {
574 "session" : 0,
575 "name" : "mountkernfs.sh"
576 },
577 "flag" : 1,
578 "path" : "//etc/init/mountkernfs.sh.conf"
579 },
580 {
581 "conf_source" : 1,
582 "job_class" : {
583 "session" : 0,
584 "name" : "rfkill-restore"
585 },
586 "flag" : 1,
587 "path" : "//etc/init/rfkill-restore.conf"
588 },
589 {
590 "conf_source" : 1,
591 "job_class" : {
592 "session" : 0,
593 "name" : "rfkill-store"
594 },
595 "flag" : 1,
596 "path" : "//etc/init/rfkill-store.conf"
597 },
598 {
599 "conf_source" : 1,
600 "job_class" : {
601 "session" : 0,
602 "name" : "systemd-logind"
603 },
604 "flag" : 1,
605 "path" : "//etc/init/systemd-logind.conf"
606 },
607 {
608 "conf_source" : 1,
609 "job_class" : {
610 "session" : 0,
611 "name" : "udevtrigger"
612 },
613 "flag" : 1,
614 "path" : "//etc/init/udevtrigger.conf"
615 },
616 {
617 "conf_source" : 1,
618 "job_class" : {
619 "session" : 0,
620 "name" : "upstart-socket-bridge"
621 },
622 "flag" : 1,
623 "path" : "//etc/init/upstart-socket-bridge.conf"
624 },
625 {
626 "conf_source" : 1,
627 "job_class" : {
628 "session" : 0,
629 "name" : "ureadahead"
630 },
631 "flag" : 1,
632 "path" : "//etc/init/ureadahead.conf"
633 },
634 {
635 "conf_source" : 1,
636 "job_class" : {
637 "session" : 0,
638 "name" : "passwd"
639 },
640 "flag" : 1,
641 "path" : "//etc/init/passwd.conf"
642 },
643 {
644 "conf_source" : 1,
645 "job_class" : {
646 "session" : 0,
647 "name" : "startpar-bridge"
648 },
649 "flag" : 1,
650 "path" : "//etc/init/startpar-bridge.conf"
651 },
652 {
653 "conf_source" : 1,
654 "job_class" : {
655 "session" : 0,
656 "name" : "mountall-net"
657 },
658 "flag" : 1,
659 "path" : "//etc/init/mountall-net.conf"
660 },
661 {
662 "conf_source" : 1,
663 "job_class" : {
664 "session" : 0,
665 "name" : "mountnfs-bootclean.sh"
666 },
667 "flag" : 1,
668 "path" : "//etc/init/mountnfs-bootclean.sh.conf"
669 },
670 {
671 "conf_source" : 1,
672 "job_class" : {
673 "session" : 0,
674 "name" : "network-manager"
675 },
676 "flag" : 1,
677 "path" : "//etc/init/network-manager.conf"
678 },
679 {
680 "conf_source" : 1,
681 "job_class" : {
682 "session" : 0,
683 "name" : "resolvconf"
684 },
685 "flag" : 1,
686 "path" : "//etc/init/resolvconf.conf"
687 },
688 {
689 "conf_source" : 1,
690 "job_class" : {
691 "session" : 0,
692 "name" : "tty3"
693 },
694 "flag" : 1,
695 "path" : "//etc/init/tty3.conf"
696 },
697 {
698 "conf_source" : 1,
699 "job_class" : {
700 "session" : 0,
701 "name" : "checkfs.sh"
702 },
703 "flag" : 1,
704 "path" : "//etc/init/checkfs.sh.conf"
705 },
706 {
707 "conf_source" : 1,
708 "job_class" : {
709 "session" : 0,
710 "name" : "dbus"
711 },
712 "flag" : 1,
713 "path" : "//etc/init/dbus.conf"
714 },
715 {
716 "conf_source" : 1,
717 "job_class" : {
718 "session" : 0,
719 "name" : "flush-early-job-log"
720 },
721 "flag" : 1,
722 "path" : "//etc/init/flush-early-job-log.conf"
723 },
724 {
725 "conf_source" : 1,
726 "job_class" : {
727 "session" : 0,
728 "name" : "network-interface-container"
729 },
730 "flag" : 1,
731 "path" : "//etc/init/network-interface-container.conf"
732 },
733 {
734 "conf_source" : 1,
735 "job_class" : {
736 "session" : 0,
737 "name" : "plymouth-ready"
738 },
739 "flag" : 1,
740 "path" : "//etc/init/plymouth-ready.conf"
741 },
742 {
743 "conf_source" : 1,
744 "job_class" : {
745 "session" : 0,
746 "name" : "plymouth-splash"
747 },
748 "flag" : 1,
749 "path" : "//etc/init/plymouth-splash.conf"
750 },
751 {
752 "conf_source" : 1,
753 "job_class" : {
754 "session" : 0,
755 "name" : "test-upstart-monitor"
756 },
757 "flag" : 1,
758 "path" : "//etc/init/test-upstart-monitor.conf"
759 },
760 {
761 "conf_source" : 1,
762 "job_class" : {
763 "session" : 0,
764 "name" : "checkroot-bootclean.sh"
765 },
766 "flag" : 1,
767 "path" : "//etc/init/checkroot-bootclean.sh.conf"
768 },
769 {
770 "conf_source" : 1,
771 "job_class" : {
772 "session" : 0,
773 "name" : "checkroot.sh"
774 },
775 "flag" : 1,
776 "path" : "//etc/init/checkroot.sh.conf"
777 },
778 {
779 "conf_source" : 1,
780 "job_class" : {
781 "session" : 0,
782 "name" : "console-setup"
783 },
784 "flag" : 1,
785 "path" : "//etc/init/console-setup.conf"
786 },
787 {
788 "conf_source" : 1,
789 "job_class" : {
790 "session" : 0,
791 "name" : "console"
792 },
793 "flag" : 1,
794 "path" : "//etc/init/console.conf"
795 },
796 {
797 "conf_source" : 1,
798 "job_class" : {
799 "session" : 0,
800 "name" : "cups"
801 },
802 "flag" : 1,
803 "path" : "//etc/init/cups.conf"
804 },
805 {
806 "conf_source" : 1,
807 "job_class" : {
808 "session" : 0,
809 "name" : "dmesg"
810 },
811 "flag" : 1,
812 "path" : "//etc/init/dmesg.conf"
813 },
814 {
815 "conf_source" : 1,
816 "job_class" : {
817 "session" : 0,
818 "name" : "screen-cleanup"
819 },
820 "flag" : 1,
821 "path" : "//etc/init/screen-cleanup.conf"
822 },
823 {
824 "conf_source" : 1,
825 "job_class" : {
826 "session" : 0,
827 "name" : "tty2"
828 },
829 "flag" : 1,
830 "path" : "//etc/init/tty2.conf"
831 },
832 {
833 "conf_source" : 1,
834 "job_class" : {
835 "session" : 0,
836 "name" : "udev"
837 },
838 "flag" : 1,
839 "path" : "//etc/init/udev.conf"
840 },
841 {
842 "conf_source" : 1,
843 "job_class" : {
844 "session" : 0,
845 "name" : "bluetooth"
846 },
847 "flag" : 1,
848 "path" : "//etc/init/bluetooth.conf"
849 },
850 {
851 "conf_source" : 1,
852 "job_class" : {
853 "session" : 0,
854 "name" : "bootmisc.sh"
855 },
856 "flag" : 1,
857 "path" : "//etc/init/bootmisc.sh.conf"
858 },
859 {
860 "conf_source" : 1,
861 "job_class" : {
862 "session" : 0,
863 "name" : "hostname"
864 },
865 "flag" : 1,
866 "path" : "//etc/init/hostname.conf"
867 },
868 {
869 "conf_source" : 1,
870 "job_class" : {
871 "session" : 0,
872 "name" : "hybrid-gfx"
873 },
874 "flag" : 1,
875 "path" : "//etc/init/hybrid-gfx.conf"
876 },
877 {
878 "conf_source" : 1,
879 "job_class" : {
880 "session" : 0,
881 "name" : "kmod"
882 },
883 "flag" : 1,
884 "path" : "//etc/init/kmod.conf"
885 },
886 {
887 "conf_source" : 1,
888 "job_class" : {
889 "session" : 0,
890 "name" : "tty6"
891 },
892 "flag" : 1,
893 "path" : "//etc/init/tty6.conf"
894 },
895 {
896 "conf_source" : 1,
897 "job_class" : {
898 "session" : 0,
899 "name" : "udevmonitor"
900 },
901 "flag" : 1,
902 "path" : "//etc/init/udevmonitor.conf"
903 },
904 {
905 "conf_source" : 1,
906 "job_class" : {
907 "session" : 0,
908 "name" : "upstart-file-bridge"
909 },
910 "flag" : 1,
911 "path" : "//etc/init/upstart-file-bridge.conf"
912 },
913 {
914 "conf_source" : 1,
915 "job_class" : {
916 "session" : 0,
917 "name" : "upstart-udev-bridge"
918 },
919 "flag" : 1,
920 "path" : "//etc/init/upstart-udev-bridge.conf"
921 }
922 ],
923 "session" : 0,
924 "flag" : 1,
925 "type" : "CONF_JOB_DIR",
926 "path" : "//etc/init"
927 }
928 ],
929 "job_classes" : [
930 {
931 "setuid" : null,
932 "jobs" : [],
933 "emits" : [],
934 "session" : 0,
935 "debug" : 0,
936 "export" : [],
937 "reload_signal" : 1,
938 "expect" : "EXPECT_NONE",
939 "chroot" : null,
940 "console" : "CONSOLE_LOG",
941 "kill_signal" : 15,
942 "name" : "avahi-cups-reload",
943 "instance" : "",
944 "description" : "Reload cups, upon starting avahi-daemon to make sure remote queues are populated",
945 "respawn_interval" : 5,
946 "process" : [
947 {
948 "script" : 0,
949 "command" : "reload cups"
950 },
951 {
952 "script" : 0,
953 "command" : null
954 },
955 {
956 "script" : 0,
957 "command" : null
958 },
959 {
960 "script" : 0,
961 "command" : null
962 },
963 {
964 "script" : 0,
965 "command" : null
966 },
967 {
968 "script" : 0,
969 "command" : null
970 }
971 ],
972 "apparmor_switch" : null,
973 "respawn_limit" : 10,
974 "author" : "Dmitrijs Ledkovs <dmitrijs.ledkovs@canonical.com>",
975 "respawn" : 0,
976 "nice" : -21,
977 "limits" : [
978 {
979 "rlim_cur" : 0,
980 "rlim_max" : 0
981 },
982 {
983 "rlim_cur" : 0,
984 "rlim_max" : 0
985 },
986 {
987 "rlim_cur" : 0,
988 "rlim_max" : 0
989 },
990 {
991 "rlim_cur" : 0,
992 "rlim_max" : 0
993 },
994 {
995 "rlim_cur" : 0,
996 "rlim_max" : 0
997 },
998 {
999 "rlim_cur" : 0,
1000 "rlim_max" : 0
1001 },
1002 {
1003 "rlim_cur" : 0,
1004 "rlim_max" : 0
1005 },
1006 {
1007 "rlim_cur" : 0,
1008 "rlim_max" : 0
1009 },
1010 {
1011 "rlim_cur" : 0,
1012 "rlim_max" : 0
1013 },
1014 {
1015 "rlim_cur" : 0,
1016 "rlim_max" : 0
1017 },
1018 {
1019 "rlim_cur" : 0,
1020 "rlim_max" : 0
1021 },
1022 {
1023 "rlim_cur" : 0,
1024 "rlim_max" : 0
1025 },
1026 {
1027 "rlim_cur" : 0,
1028 "rlim_max" : 0
1029 },
1030 {
1031 "rlim_cur" : 0,
1032 "rlim_max" : 0
1033 },
1034 {
1035 "rlim_cur" : 0,
1036 "rlim_max" : 0
1037 },
1038 {
1039 "rlim_cur" : 0,
1040 "rlim_max" : 0
1041 }
1042 ],
1043 "oom_score_adj" : 0,
1044 "normalexit" : [],
1045 "kill_timeout" : 5,
1046 "usage" : null,
1047 "env" : [],
1048 "version" : null,
1049 "task" : 1,
1050 "path" : "/com/ubuntu/Upstart/jobs/avahi_2dcups_2dreload",
1051 "deleted" : 0,
1052 "chdir" : null,
1053 "start_on" : [
1054 {
1055 "env" : [
1056 "avahi-daemon"
1057 ],
1058 "value" : 0,
1059 "name" : "started",
1060 "type" : "EVENT_MATCH"
1061 }
1062 ],
1063 "umask" : 18,
1064 "setgid" : null
1065 },
1066 {
1067 "setuid" : null,
1068 "jobs" : [
1069 {
1070 "trace_state" : "TRACE_NONE",
1071 "failed" : 0,
1072 "state" : "JOB_RUNNING",
1073 "failed_process" : "PROCESS_INVALID",
1074 "pid" : [
1075 553,
1076 0,
1077 0,
1078 0,
1079 0,
1080 0
1081 ],
1082 "start_env" : [],
1083 "trace_forks" : 2,
1084 "respawn_time" : 0,
1085 "log" : [
1086 {
1087 "path" : null
1088 },
1089 {
1090 "path" : null
1091 },
1092 {
1093 "path" : null
1094 },
1095 {
1096 "path" : null
1097 },
1098 {
1099 "path" : null
1100 },
1101 {
1102 "path" : null
1103 }
1104 ],
1105 "respawn_count" : 0,
1106 "kill_process" : "PROCESS_INVALID",
1107 "stop_on" : [
1108 {
1109 "env" : [
1110 "dbus"
1111 ],
1112 "value" : 0,
1113 "name" : "stopping",
1114 "type" : "EVENT_MATCH"
1115 }
1116 ],
1117 "env" : [
1118 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
1119 "TERM=linux",
1120 "JOB=dbus",
1121 "INSTANCE=",
1122 "UPSTART_EVENTS=filesystem started"
1123 ],
1124 "name" : "",
1125 "path" : "/com/ubuntu/Upstart/jobs/avahi_2ddaemon/_",
1126 "exit_status" : 0,
1127 "goal" : "JOB_START",
1128 "stop_env" : [],
1129 "fds" : []
1130 }
1131 ],
1132 "emits" : [],
1133 "session" : 0,
1134 "debug" : 0,
1135 "export" : [],
1136 "reload_signal" : 1,
1137 "expect" : "EXPECT_DAEMON",
1138 "stop_on" : [
1139 {
1140 "env" : [
1141 "dbus"
1142 ],
1143 "value" : 0,
1144 "name" : "stopping",
1145 "type" : "EVENT_MATCH"
1146 }
1147 ],
1148 "chroot" : null,
1149 "console" : "CONSOLE_LOG",
1150 "kill_signal" : 15,
1151 "name" : "avahi-daemon",
1152 "instance" : "",
1153 "description" : "mDNS/DNS-SD daemon",
1154 "respawn_interval" : 5,
1155 "process" : [
1156 {
1157 "script" : 1,
1158 "command" : "opts=\"-D\"\n[ -e \"/etc/eucalyptus/avahi-daemon.conf\" ] && opts=\"${opts} -f /etc/eucalyptus/avahi-daemon.conf\"\nexec avahi-daemon ${opts}\n"
1159 },
1160 {
1161 "script" : 1,
1162 "command" : "/lib/init/apparmor-profile-load usr.sbin.avahi-daemon\n"
1163 },
1164 {
1165 "script" : 0,
1166 "command" : null
1167 },
1168 {
1169 "script" : 0,
1170 "command" : null
1171 },
1172 {
1173 "script" : 0,
1174 "command" : null
1175 },
1176 {
1177 "script" : 0,
1178 "command" : null
1179 }
1180 ],
1181 "apparmor_switch" : null,
1182 "respawn_limit" : 10,
1183 "author" : null,
1184 "respawn" : 1,
1185 "nice" : -21,
1186 "limits" : [
1187 {
1188 "rlim_cur" : 0,
1189 "rlim_max" : 0
1190 },
1191 {
1192 "rlim_cur" : 0,
1193 "rlim_max" : 0
1194 },
1195 {
1196 "rlim_cur" : 0,
1197 "rlim_max" : 0
1198 },
1199 {
1200 "rlim_cur" : 0,
1201 "rlim_max" : 0
1202 },
1203 {
1204 "rlim_cur" : 0,
1205 "rlim_max" : 0
1206 },
1207 {
1208 "rlim_cur" : 0,
1209 "rlim_max" : 0
1210 },
1211 {
1212 "rlim_cur" : 0,
1213 "rlim_max" : 0
1214 },
1215 {
1216 "rlim_cur" : 0,
1217 "rlim_max" : 0
1218 },
1219 {
1220 "rlim_cur" : 0,
1221 "rlim_max" : 0
1222 },
1223 {
1224 "rlim_cur" : 0,
1225 "rlim_max" : 0
1226 },
1227 {
1228 "rlim_cur" : 0,
1229 "rlim_max" : 0
1230 },
1231 {
1232 "rlim_cur" : 0,
1233 "rlim_max" : 0
1234 },
1235 {
1236 "rlim_cur" : 0,
1237 "rlim_max" : 0
1238 },
1239 {
1240 "rlim_cur" : 0,
1241 "rlim_max" : 0
1242 },
1243 {
1244 "rlim_cur" : 0,
1245 "rlim_max" : 0
1246 },
1247 {
1248 "rlim_cur" : 0,
1249 "rlim_max" : 0
1250 }
1251 ],
1252 "oom_score_adj" : 0,
1253 "normalexit" : [],
1254 "kill_timeout" : 5,
1255 "usage" : null,
1256 "env" : [],
1257 "version" : null,
1258 "deleted" : 0,
1259 "task" : 0,
1260 "path" : "/com/ubuntu/Upstart/jobs/avahi_2ddaemon",
1261 "chdir" : null,
1262 "start_on" : [
1263 {
1264 "value" : 0,
1265 "name" : "filesystem",
1266 "type" : "EVENT_MATCH"
1267 },
1268 {
1269 "env" : [
1270 "dbus"
1271 ],
1272 "value" : 0,
1273 "name" : "started",
1274 "type" : "EVENT_MATCH"
1275 },
1276 {
1277 "value" : 0,
1278 "type" : "EVENT_AND"
1279 }
1280 ],
1281 "umask" : 18,
1282 "setgid" : null
1283 },
1284 {
1285 "setuid" : null,
1286 "jobs" : [],
1287 "emits" : [],
1288 "session" : 0,
1289 "debug" : 0,
1290 "export" : [],
1291 "reload_signal" : 1,
1292 "expect" : "EXPECT_NONE",
1293 "chroot" : null,
1294 "console" : "CONSOLE_LOG",
1295 "kill_signal" : 15,
1296 "name" : "mountall-net",
1297 "instance" : "",
1298 "description" : "Mount network filesystems",
1299 "respawn_interval" : 5,
1300 "process" : [
1301 {
1302 "script" : 1,
1303 "command" : "PID=$(status mountall 2>/dev/null | sed -e '/start\\/running,/{s/.*,[^0-9]*//;q};d')\n[ -n \"$PID\" ] && kill -USR1 $PID || true\n"
1304 },
1305 {
1306 "script" : 0,
1307 "command" : null
1308 },
1309 {
1310 "script" : 0,
1311 "command" : null
1312 },
1313 {
1314 "script" : 0,
1315 "command" : null
1316 },
1317 {
1318 "script" : 0,
1319 "command" : null
1320 },
1321 {
1322 "script" : 0,
1323 "command" : null
1324 }
1325 ],
1326 "apparmor_switch" : null,
1327 "respawn_limit" : 10,
1328 "author" : null,
1329 "respawn" : 0,
1330 "nice" : -21,
1331 "limits" : [
1332 {
1333 "rlim_cur" : 0,
1334 "rlim_max" : 0
1335 },
1336 {
1337 "rlim_cur" : 0,
1338 "rlim_max" : 0
1339 },
1340 {
1341 "rlim_cur" : 0,
1342 "rlim_max" : 0
1343 },
1344 {
1345 "rlim_cur" : 0,
1346 "rlim_max" : 0
1347 },
1348 {
1349 "rlim_cur" : 0,
1350 "rlim_max" : 0
1351 },
1352 {
1353 "rlim_cur" : 0,
1354 "rlim_max" : 0
1355 },
1356 {
1357 "rlim_cur" : 0,
1358 "rlim_max" : 0
1359 },
1360 {
1361 "rlim_cur" : 0,
1362 "rlim_max" : 0
1363 },
1364 {
1365 "rlim_cur" : 0,
1366 "rlim_max" : 0
1367 },
1368 {
1369 "rlim_cur" : 0,
1370 "rlim_max" : 0
1371 },
1372 {
1373 "rlim_cur" : 0,
1374 "rlim_max" : 0
1375 },
1376 {
1377 "rlim_cur" : 0,
1378 "rlim_max" : 0
1379 },
1380 {
1381 "rlim_cur" : 0,
1382 "rlim_max" : 0
1383 },
1384 {
1385 "rlim_cur" : 0,
1386 "rlim_max" : 0
1387 },
1388 {
1389 "rlim_cur" : 0,
1390 "rlim_max" : 0
1391 },
1392 {
1393 "rlim_cur" : 0,
1394 "rlim_max" : 0
1395 }
1396 ],
1397 "oom_score_adj" : 0,
1398 "normalexit" : [],
1399 "kill_timeout" : 5,
1400 "usage" : null,
1401 "env" : [],
1402 "version" : null,
1403 "task" : 1,
1404 "path" : "/com/ubuntu/Upstart/jobs/mountall_2dnet",
1405 "deleted" : 0,
1406 "chdir" : null,
1407 "start_on" : [
1408 {
1409 "value" : 0,
1410 "name" : "net-device-up",
1411 "type" : "EVENT_MATCH"
1412 }
1413 ],
1414 "umask" : 18,
1415 "setgid" : null
1416 },
1417 {
1418 "setuid" : null,
1419 "jobs" : [
1420 {
1421 "trace_state" : "TRACE_NONE",
1422 "failed" : 0,
1423 "state" : "JOB_RUNNING",
1424 "failed_process" : "PROCESS_INVALID",
1425 "pid" : [
1426 0,
1427 0,
1428 0,
1429 0,
1430 0,
1431 0
1432 ],
1433 "start_env" : [],
1434 "trace_forks" : 0,
1435 "respawn_time" : 0,
1436 "log" : [
1437 {
1438 "path" : null
1439 },
1440 {
1441 "path" : null
1442 },
1443 {
1444 "path" : null
1445 },
1446 {
1447 "path" : null
1448 },
1449 {
1450 "path" : null
1451 },
1452 {
1453 "path" : null
1454 }
1455 ],
1456 "respawn_count" : 0,
1457 "kill_process" : "PROCESS_INVALID",
1458 "env" : [
1459 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
1460 "TERM=linux",
1461 "UPSTART_EVENTS=virtual-filesystems"
1462 ],
1463 "name" : "",
1464 "path" : "/com/ubuntu/Upstart/jobs/mountnfs_2dbootclean_2esh/_",
1465 "exit_status" : 0,
1466 "goal" : "JOB_START",
1467 "stop_env" : [],
1468 "fds" : []
1469 }
1470 ],
1471 "emits" : [],
1472 "session" : 0,
1473 "debug" : 0,
1474 "export" : [],
1475 "reload_signal" : 1,
1476 "expect" : "EXPECT_NONE",
1477 "chroot" : null,
1478 "console" : "CONSOLE_LOG",
1479 "kill_signal" : 15,
1480 "name" : "mountnfs-bootclean.sh",
1481 "instance" : "",
1482 "description" : null,
1483 "respawn_interval" : 5,
1484 "process" : [
1485 {
1486 "script" : 0,
1487 "command" : null
1488 },
1489 {
1490 "script" : 0,
1491 "command" : null
1492 },
1493 {
1494 "script" : 0,
1495 "command" : null
1496 },
1497 {
1498 "script" : 0,
1499 "command" : null
1500 },
1501 {
1502 "script" : 0,
1503 "command" : null
1504 },
1505 {
1506 "script" : 0,
1507 "command" : null
1508 }
1509 ],
1510 "apparmor_switch" : null,
1511 "respawn_limit" : 10,
1512 "author" : null,
1513 "respawn" : 0,
1514 "nice" : -21,
1515 "limits" : [
1516 {
1517 "rlim_cur" : 0,
1518 "rlim_max" : 0
1519 },
1520 {
1521 "rlim_cur" : 0,
1522 "rlim_max" : 0
1523 },
1524 {
1525 "rlim_cur" : 0,
1526 "rlim_max" : 0
1527 },
1528 {
1529 "rlim_cur" : 0,
1530 "rlim_max" : 0
1531 },
1532 {
1533 "rlim_cur" : 0,
1534 "rlim_max" : 0
1535 },
1536 {
1537 "rlim_cur" : 0,
1538 "rlim_max" : 0
1539 },
1540 {
1541 "rlim_cur" : 0,
1542 "rlim_max" : 0
1543 },
1544 {
1545 "rlim_cur" : 0,
1546 "rlim_max" : 0
1547 },
1548 {
1549 "rlim_cur" : 0,
1550 "rlim_max" : 0
1551 },
1552 {
1553 "rlim_cur" : 0,
1554 "rlim_max" : 0
1555 },
1556 {
1557 "rlim_cur" : 0,
1558 "rlim_max" : 0
1559 },
1560 {
1561 "rlim_cur" : 0,
1562 "rlim_max" : 0
1563 },
1564 {
1565 "rlim_cur" : 0,
1566 "rlim_max" : 0
1567 },
1568 {
1569 "rlim_cur" : 0,
1570 "rlim_max" : 0
1571 },
1572 {
1573 "rlim_cur" : 0,
1574 "rlim_max" : 0
1575 },
1576 {
1577 "rlim_cur" : 0,
1578 "rlim_max" : 0
1579 }
1580 ],
1581 "oom_score_adj" : 0,
1582 "normalexit" : [],
1583 "kill_timeout" : 5,
1584 "usage" : null,
1585 "env" : [],
1586 "version" : null,
1587 "task" : 0,
1588 "path" : "/com/ubuntu/Upstart/jobs/mountnfs_2dbootclean_2esh",
1589 "deleted" : 0,
1590 "chdir" : null,
1591 "start_on" : [
1592 {
1593 "value" : 0,
1594 "name" : "virtual-filesystems",
1595 "type" : "EVENT_MATCH"
1596 }
1597 ],
1598 "umask" : 18,
1599 "setgid" : null
1600 },
1601 {
1602 "setuid" : null,
1603 "jobs" : [],
1604 "emits" : [],
1605 "session" : 0,
1606 "debug" : 0,
1607 "export" : [],
1608 "reload_signal" : 1,
1609 "expect" : "EXPECT_NONE",
1610 "chroot" : null,
1611 "console" : "CONSOLE_LOG",
1612 "kill_signal" : 15,
1613 "name" : "passwd",
1614 "instance" : "",
1615 "description" : "Clear passwd locks",
1616 "respawn_interval" : 5,
1617 "process" : [
1618 {
1619 "script" : 0,
1620 "command" : "rm -f /etc/gshadow.lock /etc/shadow.lock /etc/passwd.lock /etc/group.lock"
1621 },
1622 {
1623 "script" : 0,
1624 "command" : null
1625 },
1626 {
1627 "script" : 0,
1628 "command" : null
1629 },
1630 {
1631 "script" : 0,
1632 "command" : null
1633 },
1634 {
1635 "script" : 0,
1636 "command" : null
1637 },
1638 {
1639 "script" : 0,
1640 "command" : null
1641 }
1642 ],
1643 "apparmor_switch" : null,
1644 "respawn_limit" : 10,
1645 "author" : null,
1646 "respawn" : 0,
1647 "nice" : -21,
1648 "limits" : [
1649 {
1650 "rlim_cur" : 0,
1651 "rlim_max" : 0
1652 },
1653 {
1654 "rlim_cur" : 0,
1655 "rlim_max" : 0
1656 },
1657 {
1658 "rlim_cur" : 0,
1659 "rlim_max" : 0
1660 },
1661 {
1662 "rlim_cur" : 0,
1663 "rlim_max" : 0
1664 },
1665 {
1666 "rlim_cur" : 0,
1667 "rlim_max" : 0
1668 },
1669 {
1670 "rlim_cur" : 0,
1671 "rlim_max" : 0
1672 },
1673 {
1674 "rlim_cur" : 0,
1675 "rlim_max" : 0
1676 },
1677 {
1678 "rlim_cur" : 0,
1679 "rlim_max" : 0
1680 },
1681 {
1682 "rlim_cur" : 0,
1683 "rlim_max" : 0
1684 },
1685 {
1686 "rlim_cur" : 0,
1687 "rlim_max" : 0
1688 },
1689 {
1690 "rlim_cur" : 0,
1691 "rlim_max" : 0
1692 },
1693 {
1694 "rlim_cur" : 0,
1695 "rlim_max" : 0
1696 },
1697 {
1698 "rlim_cur" : 0,
1699 "rlim_max" : 0
1700 },
1701 {
1702 "rlim_cur" : 0,
1703 "rlim_max" : 0
1704 },
1705 {
1706 "rlim_cur" : 0,
1707 "rlim_max" : 0
1708 },
1709 {
1710 "rlim_cur" : 0,
1711 "rlim_max" : 0
1712 }
1713 ],
1714 "oom_score_adj" : 0,
1715 "normalexit" : [],
1716 "kill_timeout" : 5,
1717 "usage" : null,
1718 "env" : [],
1719 "version" : null,
1720 "task" : 1,
1721 "path" : "/com/ubuntu/Upstart/jobs/passwd",
1722 "deleted" : 0,
1723 "chdir" : null,
1724 "start_on" : [
1725 {
1726 "value" : 0,
1727 "name" : "filesystem",
1728 "type" : "EVENT_MATCH"
1729 }
1730 ],
1731 "umask" : 18,
1732 "setgid" : null
1733 },
1734 {
1735 "setuid" : null,
1736 "jobs" : [],
1737 "emits" : [
1738 "deconfiguring-networking",
1739 "unmounted-remote-filesystems"
1740 ],
1741 "session" : 0,
1742 "debug" : 0,
1743 "export" : [
1744 "RUNLEVEL",
1745 "PREVLEVEL"
1746 ],
1747 "reload_signal" : 1,
1748 "expect" : "EXPECT_NONE",
1749 "stop_on" : [
1750 {
1751 "env" : [
1752 "[!$RUNLEVEL]"
1753 ],
1754 "value" : 0,
1755 "name" : "runlevel",
1756 "type" : "EVENT_MATCH"
1757 }
1758 ],
1759 "chroot" : null,
1760 "console" : "CONSOLE_OUTPUT",
1761 "kill_signal" : 15,
1762 "name" : "rc",
1763 "instance" : "",
1764 "description" : "System V runlevel compatibility",
1765 "respawn_interval" : 5,
1766 "process" : [
1767 {
1768 "script" : 0,
1769 "command" : "/etc/init.d/rc $RUNLEVEL"
1770 },
1771 {
1772 "script" : 0,
1773 "command" : null
1774 },
1775 {
1776 "script" : 0,
1777 "command" : null
1778 },
1779 {
1780 "script" : 0,
1781 "command" : null
1782 },
1783 {
1784 "script" : 0,
1785 "command" : null
1786 },
1787 {
1788 "script" : 0,
1789 "command" : null
1790 }
1791 ],
1792 "apparmor_switch" : null,
1793 "respawn_limit" : 10,
1794 "author" : "Scott James Remnant <scott@netsplit.com>",
1795 "respawn" : 0,
1796 "nice" : -21,
1797 "limits" : [
1798 {
1799 "rlim_cur" : 0,
1800 "rlim_max" : 0
1801 },
1802 {
1803 "rlim_cur" : 0,
1804 "rlim_max" : 0
1805 },
1806 {
1807 "rlim_cur" : 0,
1808 "rlim_max" : 0
1809 },
1810 {
1811 "rlim_cur" : 0,
1812 "rlim_max" : 0
1813 },
1814 {
1815 "rlim_cur" : 0,
1816 "rlim_max" : 0
1817 },
1818 {
1819 "rlim_cur" : 0,
1820 "rlim_max" : 0
1821 },
1822 {
1823 "rlim_cur" : 0,
1824 "rlim_max" : 0
1825 },
1826 {
1827 "rlim_cur" : 0,
1828 "rlim_max" : 0
1829 },
1830 {
1831 "rlim_cur" : 0,
1832 "rlim_max" : 0
1833 },
1834 {
1835 "rlim_cur" : 0,
1836 "rlim_max" : 0
1837 },
1838 {
1839 "rlim_cur" : 0,
1840 "rlim_max" : 0
1841 },
1842 {
1843 "rlim_cur" : 0,
1844 "rlim_max" : 0
1845 },
1846 {
1847 "rlim_cur" : 0,
1848 "rlim_max" : 0
1849 },
1850 {
1851 "rlim_cur" : 0,
1852 "rlim_max" : 0
1853 },
1854 {
1855 "rlim_cur" : 0,
1856 "rlim_max" : 0
1857 },
1858 {
1859 "rlim_cur" : 0,
1860 "rlim_max" : 0
1861 }
1862 ],
1863 "oom_score_adj" : 0,
1864 "normalexit" : [],
1865 "kill_timeout" : 5,
1866 "usage" : null,
1867 "env" : [
1868 "INIT_VERBOSE"
1869 ],
1870 "version" : null,
1871 "deleted" : 0,
1872 "task" : 1,
1873 "path" : "/com/ubuntu/Upstart/jobs/rc",
1874 "chdir" : null,
1875 "start_on" : [
1876 {
1877 "env" : [
1878 "[0123456]"
1879 ],
1880 "value" : 0,
1881 "name" : "runlevel",
1882 "type" : "EVENT_MATCH"
1883 }
1884 ],
1885 "umask" : 18,
1886 "setgid" : null
1887 },
1888 {
1889 "setuid" : null,
1890 "jobs" : [
1891 {
1892 "trace_state" : "TRACE_NONE",
1893 "failed" : 0,
1894 "state" : "JOB_RUNNING",
1895 "failed_process" : "PROCESS_INVALID",
1896 "pid" : [
1897 538,
1898 0,
1899 0,
1900 0,
1901 0,
1902 0
1903 ],
1904 "start_env" : [],
1905 "trace_forks" : 1,
1906 "respawn_time" : 0,
1907 "log" : [
1908 {
1909 "path" : null
1910 },
1911 {
1912 "path" : null
1913 },
1914 {
1915 "path" : null
1916 },
1917 {
1918 "path" : null
1919 },
1920 {
1921 "path" : null
1922 },
1923 {
1924 "path" : null
1925 }
1926 ],
1927 "respawn_count" : 0,
1928 "kill_process" : "PROCESS_INVALID",
1929 "stop_on" : [
1930 {
1931 "env" : [
1932 "[06]"
1933 ],
1934 "value" : 0,
1935 "name" : "runlevel",
1936 "type" : "EVENT_MATCH"
1937 }
1938 ],
1939 "env" : [
1940 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
1941 "TERM=linux",
1942 "UPSTART_EVENTS=filesystem"
1943 ],
1944 "name" : "",
1945 "path" : "/com/ubuntu/Upstart/jobs/rsyslog/_",
1946 "exit_status" : 0,
1947 "goal" : "JOB_START",
1948 "stop_env" : [],
1949 "fds" : []
1950 }
1951 ],
1952 "emits" : [],
1953 "session" : 0,
1954 "debug" : 0,
1955 "export" : [],
1956 "reload_signal" : 1,
1957 "expect" : "EXPECT_FORK",
1958 "stop_on" : [
1959 {
1960 "env" : [
1961 "[06]"
1962 ],
1963 "value" : 0,
1964 "name" : "runlevel",
1965 "type" : "EVENT_MATCH"
1966 }
1967 ],
1968 "chroot" : null,
1969 "console" : "CONSOLE_LOG",
1970 "kill_signal" : 15,
1971 "name" : "rsyslog",
1972 "instance" : "",
1973 "description" : "system logging daemon",
1974 "respawn_interval" : 5,
1975 "process" : [
1976 {
1977 "script" : 1,
1978 "command" : ". /etc/default/rsyslog\nexec rsyslogd $RSYSLOGD_OPTIONS\n"
1979 },
1980 {
1981 "script" : 1,
1982 "command" : "/lib/init/apparmor-profile-load usr.sbin.rsyslogd\n"
1983 },
1984 {
1985 "script" : 0,
1986 "command" : null
1987 },
1988 {
1989 "script" : 0,
1990 "command" : null
1991 },
1992 {
1993 "script" : 0,
1994 "command" : null
1995 },
1996 {
1997 "script" : 0,
1998 "command" : null
1999 }
2000 ],
2001 "apparmor_switch" : null,
2002 "respawn_limit" : 10,
2003 "author" : null,
2004 "respawn" : 1,
2005 "nice" : -21,
2006 "limits" : [
2007 {
2008 "rlim_cur" : 0,
2009 "rlim_max" : 0
2010 },
2011 {
2012 "rlim_cur" : 0,
2013 "rlim_max" : 0
2014 },
2015 {
2016 "rlim_cur" : 0,
2017 "rlim_max" : 0
2018 },
2019 {
2020 "rlim_cur" : 0,
2021 "rlim_max" : 0
2022 },
2023 {
2024 "rlim_cur" : 0,
2025 "rlim_max" : 0
2026 },
2027 {
2028 "rlim_cur" : 0,
2029 "rlim_max" : 0
2030 },
2031 {
2032 "rlim_cur" : 0,
2033 "rlim_max" : 0
2034 },
2035 {
2036 "rlim_cur" : 0,
2037 "rlim_max" : 0
2038 },
2039 {
2040 "rlim_cur" : 0,
2041 "rlim_max" : 0
2042 },
2043 {
2044 "rlim_cur" : 0,
2045 "rlim_max" : 0
2046 },
2047 {
2048 "rlim_cur" : 0,
2049 "rlim_max" : 0
2050 },
2051 {
2052 "rlim_cur" : 0,
2053 "rlim_max" : 0
2054 },
2055 {
2056 "rlim_cur" : 0,
2057 "rlim_max" : 0
2058 },
2059 {
2060 "rlim_cur" : 0,
2061 "rlim_max" : 0
2062 },
2063 {
2064 "rlim_cur" : 0,
2065 "rlim_max" : 0
2066 },
2067 {
2068 "rlim_cur" : 0,
2069 "rlim_max" : 0
2070 }
2071 ],
2072 "oom_score_adj" : 0,
2073 "normalexit" : [],
2074 "kill_timeout" : 5,
2075 "usage" : null,
2076 "env" : [],
2077 "version" : null,
2078 "deleted" : 0,
2079 "task" : 0,
2080 "path" : "/com/ubuntu/Upstart/jobs/rsyslog",
2081 "chdir" : null,
2082 "start_on" : [
2083 {
2084 "value" : 0,
2085 "name" : "filesystem",
2086 "type" : "EVENT_MATCH"
2087 }
2088 ],
2089 "umask" : 18,
2090 "setgid" : null
2091 },
2092 {
2093 "setuid" : null,
2094 "jobs" : [],
2095 "emits" : [],
2096 "session" : 0,
2097 "debug" : 0,
2098 "export" : [],
2099 "reload_signal" : 1,
2100 "expect" : "EXPECT_NONE",
2101 "chroot" : null,
2102 "console" : "CONSOLE_LOG",
2103 "kill_signal" : 15,
2104 "name" : "screen-cleanup",
2105 "instance" : "",
2106 "description" : "GNU Screen Cleanup",
2107 "respawn_interval" : 5,
2108 "process" : [
2109 {
2110 "script" : 1,
2111 "command" : "SCREENDIR=/var/run/screen\nif [ -L $SCREENDIR ] || [ ! -d $SCREENDIR ]; then\n\trm -f $SCREENDIR\n\tmkdir $SCREENDIR\n\tchown root:utmp $SCREENDIR\nfi\nfind $SCREENDIR -type p -delete\n# If the local admin has used dpkg-statoverride to install the screen\n# binary with different set[ug]id bits, change the permissions of\n# $SCREENDIR accordingly\nBINARYPERM=`stat -c%a /usr/bin/screen`\nif [ \"$BINARYPERM\" -ge 4000 ]; then\n\tchmod 0755 $SCREENDIR\nelif [ \"$BINARYPERM\" -ge 2000 ]; then\n\tchmod 0775 $SCREENDIR\nelse\n\tchmod 0777 $SCREENDIR\nfi\n"
2112 },
2113 {
2114 "script" : 0,
2115 "command" : null
2116 },
2117 {
2118 "script" : 0,
2119 "command" : null
2120 },
2121 {
2122 "script" : 0,
2123 "command" : null
2124 },
2125 {
2126 "script" : 0,
2127 "command" : null
2128 },
2129 {
2130 "script" : 0,
2131 "command" : null
2132 }
2133 ],
2134 "apparmor_switch" : null,
2135 "respawn_limit" : 10,
2136 "author" : "Dustin Kirkland <kirkland@canonical.com>",
2137 "respawn" : 0,
2138 "nice" : -21,
2139 "limits" : [
2140 {
2141 "rlim_cur" : 0,
2142 "rlim_max" : 0
2143 },
2144 {
2145 "rlim_cur" : 0,
2146 "rlim_max" : 0
2147 },
2148 {
2149 "rlim_cur" : 0,
2150 "rlim_max" : 0
2151 },
2152 {
2153 "rlim_cur" : 0,
2154 "rlim_max" : 0
2155 },
2156 {
2157 "rlim_cur" : 0,
2158 "rlim_max" : 0
2159 },
2160 {
2161 "rlim_cur" : 0,
2162 "rlim_max" : 0
2163 },
2164 {
2165 "rlim_cur" : 0,
2166 "rlim_max" : 0
2167 },
2168 {
2169 "rlim_cur" : 0,
2170 "rlim_max" : 0
2171 },
2172 {
2173 "rlim_cur" : 0,
2174 "rlim_max" : 0
2175 },
2176 {
2177 "rlim_cur" : 0,
2178 "rlim_max" : 0
2179 },
2180 {
2181 "rlim_cur" : 0,
2182 "rlim_max" : 0
2183 },
2184 {
2185 "rlim_cur" : 0,
2186 "rlim_max" : 0
2187 },
2188 {
2189 "rlim_cur" : 0,
2190 "rlim_max" : 0
2191 },
2192 {
2193 "rlim_cur" : 0,
2194 "rlim_max" : 0
2195 },
2196 {
2197 "rlim_cur" : 0,
2198 "rlim_max" : 0
2199 },
2200 {
2201 "rlim_cur" : 0,
2202 "rlim_max" : 0
2203 }
2204 ],
2205 "oom_score_adj" : 0,
2206 "normalexit" : [],
2207 "kill_timeout" : 5,
2208 "usage" : null,
2209 "env" : [],
2210 "version" : null,
2211 "task" : 1,
2212 "path" : "/com/ubuntu/Upstart/jobs/screen_2dcleanup",
2213 "deleted" : 0,
2214 "chdir" : null,
2215 "start_on" : [
2216 {
2217 "value" : 0,
2218 "name" : "filesystem",
2219 "type" : "EVENT_MATCH"
2220 }
2221 ],
2222 "umask" : 18,
2223 "setgid" : null
2224 },
2225 {
2226 "setuid" : null,
2227 "jobs" : [],
2228 "emits" : [],
2229 "session" : 0,
2230 "debug" : 0,
2231 "export" : [],
2232 "reload_signal" : 1,
2233 "expect" : "EXPECT_NONE",
2234 "chroot" : null,
2235 "console" : "CONSOLE_LOG",
2236 "kill_signal" : 15,
2237 "name" : "startpar-bridge",
2238 "instance" : "$JOB-$INSTANCE-$UPSTART_EVENTS",
2239 "description" : "startpar bridge for notification of upstart job start/stop",
2240 "respawn_interval" : 5,
2241 "process" : [
2242 {
2243 "script" : 0,
2244 "command" : "startpar-upstart-inject \"$JOB\" \"$INSTANCE\" \"$UPSTART_EVENTS\""
2245 },
2246 {
2247 "script" : 0,
2248 "command" : null
2249 },
2250 {
2251 "script" : 0,
2252 "command" : null
2253 },
2254 {
2255 "script" : 0,
2256 "command" : null
2257 },
2258 {
2259 "script" : 0,
2260 "command" : null
2261 },
2262 {
2263 "script" : 0,
2264 "command" : null
2265 }
2266 ],
2267 "apparmor_switch" : null,
2268 "respawn_limit" : 10,
2269 "author" : "Steve Langasek <steve.langasek@ubuntu.com>",
2270 "respawn" : 0,
2271 "nice" : -21,
2272 "limits" : [
2273 {
2274 "rlim_cur" : 0,
2275 "rlim_max" : 0
2276 },
2277 {
2278 "rlim_cur" : 0,
2279 "rlim_max" : 0
2280 },
2281 {
2282 "rlim_cur" : 0,
2283 "rlim_max" : 0
2284 },
2285 {
2286 "rlim_cur" : 0,
2287 "rlim_max" : 0
2288 },
2289 {
2290 "rlim_cur" : 0,
2291 "rlim_max" : 0
2292 },
2293 {
2294 "rlim_cur" : 0,
2295 "rlim_max" : 0
2296 },
2297 {
2298 "rlim_cur" : 0,
2299 "rlim_max" : 0
2300 },
2301 {
2302 "rlim_cur" : 0,
2303 "rlim_max" : 0
2304 },
2305 {
2306 "rlim_cur" : 0,
2307 "rlim_max" : 0
2308 },
2309 {
2310 "rlim_cur" : 0,
2311 "rlim_max" : 0
2312 },
2313 {
2314 "rlim_cur" : 0,
2315 "rlim_max" : 0
2316 },
2317 {
2318 "rlim_cur" : 0,
2319 "rlim_max" : 0
2320 },
2321 {
2322 "rlim_cur" : 0,
2323 "rlim_max" : 0
2324 },
2325 {
2326 "rlim_cur" : 0,
2327 "rlim_max" : 0
2328 },
2329 {
2330 "rlim_cur" : 0,
2331 "rlim_max" : 0
2332 },
2333 {
2334 "rlim_cur" : 0,
2335 "rlim_max" : 0
2336 }
2337 ],
2338 "oom_score_adj" : 0,
2339 "normalexit" : [],
2340 "kill_timeout" : 5,
2341 "usage" : null,
2342 "env" : [],
2343 "version" : null,
2344 "task" : 1,
2345 "path" : "/com/ubuntu/Upstart/jobs/startpar_2dbridge",
2346 "deleted" : 0,
2347 "chdir" : null,
2348 "start_on" : [
2349 {
2350 "env" : [
2351 "JOB!=startpar-bridge"
2352 ],
2353 "value" : 0,
2354 "name" : "started",
2355 "type" : "EVENT_MATCH"
2356 },
2357 {
2358 "env" : [
2359 "JOB!=startpar-bridge"
2360 ],
2361 "value" : 0,
2362 "name" : "stopped",
2363 "type" : "EVENT_MATCH"
2364 },
2365 {
2366 "value" : 0,
2367 "type" : "EVENT_OR"
2368 }
2369 ],
2370 "umask" : 18,
2371 "setgid" : null
2372 },
2373 {
2374 "setuid" : null,
2375 "jobs" : [
2376 {
2377 "trace_state" : "TRACE_NONE",
2378 "failed" : 0,
2379 "state" : "JOB_RUNNING",
2380 "failed_process" : "PROCESS_INVALID",
2381 "pid" : [
2382 933,
2383 0,
2384 0,
2385 0,
2386 0,
2387 0
2388 ],
2389 "start_env" : [],
2390 "trace_forks" : 0,
2391 "respawn_time" : 0,
2392 "log" : [
2393 {
2394 "path" : null
2395 },
2396 {
2397 "path" : null
2398 },
2399 {
2400 "path" : null
2401 },
2402 {
2403 "path" : null
2404 },
2405 {
2406 "path" : null
2407 },
2408 {
2409 "path" : null
2410 }
2411 ],
2412 "respawn_count" : 0,
2413 "kill_process" : "PROCESS_INVALID",
2414 "stop_on" : [
2415 {
2416 "env" : [
2417 "[!23]"
2418 ],
2419 "value" : 0,
2420 "name" : "runlevel",
2421 "type" : "EVENT_MATCH"
2422 }
2423 ],
2424 "env" : [
2425 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
2426 "TERM=linux",
2427 "RUNLEVEL=2",
2428 "PREVLEVEL=N",
2429 "UPSTART_EVENTS=runlevel not-container"
2430 ],
2431 "name" : "",
2432 "path" : "/com/ubuntu/Upstart/jobs/tty4/_",
2433 "exit_status" : 0,
2434 "goal" : "JOB_START",
2435 "stop_env" : [],
2436 "fds" : []
2437 }
2438 ],
2439 "emits" : [],
2440 "session" : 0,
2441 "debug" : 0,
2442 "export" : [],
2443 "reload_signal" : 1,
2444 "expect" : "EXPECT_NONE",
2445 "stop_on" : [
2446 {
2447 "env" : [
2448 "[!23]"
2449 ],
2450 "value" : 0,
2451 "name" : "runlevel",
2452 "type" : "EVENT_MATCH"
2453 }
2454 ],
2455 "chroot" : null,
2456 "console" : "CONSOLE_LOG",
2457 "kill_signal" : 15,
2458 "name" : "tty4",
2459 "instance" : "",
2460 "description" : null,
2461 "respawn_interval" : 5,
2462 "process" : [
2463 {
2464 "script" : 0,
2465 "command" : "/sbin/getty -8 38400 tty4"
2466 },
2467 {
2468 "script" : 0,
2469 "command" : null
2470 },
2471 {
2472 "script" : 0,
2473 "command" : null
2474 },
2475 {
2476 "script" : 0,
2477 "command" : null
2478 },
2479 {
2480 "script" : 0,
2481 "command" : null
2482 },
2483 {
2484 "script" : 0,
2485 "command" : null
2486 }
2487 ],
2488 "apparmor_switch" : null,
2489 "respawn_limit" : 10,
2490 "author" : null,
2491 "respawn" : 1,
2492 "nice" : -21,
2493 "limits" : [
2494 {
2495 "rlim_cur" : 0,
2496 "rlim_max" : 0
2497 },
2498 {
2499 "rlim_cur" : 0,
2500 "rlim_max" : 0
2501 },
2502 {
2503 "rlim_cur" : 0,
2504 "rlim_max" : 0
2505 },
2506 {
2507 "rlim_cur" : 0,
2508 "rlim_max" : 0
2509 },
2510 {
2511 "rlim_cur" : 0,
2512 "rlim_max" : 0
2513 },
2514 {
2515 "rlim_cur" : 0,
2516 "rlim_max" : 0
2517 },
2518 {
2519 "rlim_cur" : 0,
2520 "rlim_max" : 0
2521 },
2522 {
2523 "rlim_cur" : 0,
2524 "rlim_max" : 0
2525 },
2526 {
2527 "rlim_cur" : 0,
2528 "rlim_max" : 0
2529 },
2530 {
2531 "rlim_cur" : 0,
2532 "rlim_max" : 0
2533 },
2534 {
2535 "rlim_cur" : 0,
2536 "rlim_max" : 0
2537 },
2538 {
2539 "rlim_cur" : 0,
2540 "rlim_max" : 0
2541 },
2542 {
2543 "rlim_cur" : 0,
2544 "rlim_max" : 0
2545 },
2546 {
2547 "rlim_cur" : 0,
2548 "rlim_max" : 0
2549 },
2550 {
2551 "rlim_cur" : 0,
2552 "rlim_max" : 0
2553 },
2554 {
2555 "rlim_cur" : 0,
2556 "rlim_max" : 0
2557 }
2558 ],
2559 "oom_score_adj" : 0,
2560 "normalexit" : [],
2561 "kill_timeout" : 5,
2562 "usage" : null,
2563 "env" : [],
2564 "version" : null,
2565 "deleted" : 0,
2566 "task" : 0,
2567 "path" : "/com/ubuntu/Upstart/jobs/tty4",
2568 "chdir" : null,
2569 "start_on" : [
2570 {
2571 "env" : [
2572 "[23]"
2573 ],
2574 "value" : 0,
2575 "name" : "runlevel",
2576 "type" : "EVENT_MATCH"
2577 },
2578 {
2579 "value" : 0,
2580 "name" : "not-container",
2581 "type" : "EVENT_MATCH"
2582 },
2583 {
2584 "env" : [
2585 "CONTAINER=lxc"
2586 ],
2587 "value" : 0,
2588 "name" : "container",
2589 "type" : "EVENT_MATCH"
2590 },
2591 {
2592 "value" : 0,
2593 "type" : "EVENT_OR"
2594 },
2595 {
2596 "env" : [
2597 "CONTAINER=lxc-libvirt"
2598 ],
2599 "value" : 0,
2600 "name" : "container",
2601 "type" : "EVENT_MATCH"
2602 },
2603 {
2604 "value" : 0,
2605 "type" : "EVENT_OR"
2606 },
2607 {
2608 "value" : 0,
2609 "type" : "EVENT_AND"
2610 }
2611 ],
2612 "umask" : 18,
2613 "setgid" : null
2614 },
2615 {
2616 "setuid" : null,
2617 "jobs" : [
2618 {
2619 "trace_state" : "TRACE_NONE",
2620 "failed" : 0,
2621 "state" : "JOB_RUNNING",
2622 "failed_process" : "PROCESS_INVALID",
2623 "pid" : [
2624 446,
2625 0,
2626 0,
2627 0,
2628 0,
2629 0
2630 ],
2631 "start_env" : [],
2632 "trace_forks" : 1,
2633 "respawn_time" : 0,
2634 "log" : [
2635 {
2636 "path" : null
2637 },
2638 {
2639 "path" : null
2640 },
2641 {
2642 "path" : null
2643 },
2644 {
2645 "path" : null
2646 },
2647 {
2648 "path" : null
2649 },
2650 {
2651 "path" : null
2652 }
2653 ],
2654 "respawn_count" : 0,
2655 "kill_process" : "PROCESS_INVALID",
2656 "stop_on" : [
2657 {
2658 "env" : [
2659 "[06]"
2660 ],
2661 "value" : 0,
2662 "name" : "runlevel",
2663 "type" : "EVENT_MATCH"
2664 }
2665 ],
2666 "env" : [
2667 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
2668 "TERM=linux",
2669 "UPSTART_EVENTS=virtual-filesystems"
2670 ],
2671 "name" : "",
2672 "path" : "/com/ubuntu/Upstart/jobs/udev/_",
2673 "exit_status" : 0,
2674 "goal" : "JOB_START",
2675 "stop_env" : [],
2676 "fds" : []
2677 }
2678 ],
2679 "emits" : [],
2680 "session" : 0,
2681 "debug" : 0,
2682 "export" : [],
2683 "reload_signal" : 1,
2684 "expect" : "EXPECT_FORK",
2685 "stop_on" : [
2686 {
2687 "env" : [
2688 "[06]"
2689 ],
2690 "value" : 0,
2691 "name" : "runlevel",
2692 "type" : "EVENT_MATCH"
2693 }
2694 ],
2695 "chroot" : null,
2696 "console" : "CONSOLE_LOG",
2697 "kill_signal" : 15,
2698 "name" : "udev",
2699 "instance" : "",
2700 "description" : "device node and kernel event manager",
2701 "respawn_interval" : 5,
2702 "process" : [
2703 {
2704 "script" : 0,
2705 "command" : "/lib/systemd/systemd-udevd --daemon"
2706 },
2707 {
2708 "script" : 0,
2709 "command" : null
2710 },
2711 {
2712 "script" : 0,
2713 "command" : null
2714 },
2715 {
2716 "script" : 0,
2717 "command" : null
2718 },
2719 {
2720 "script" : 0,
2721 "command" : null
2722 },
2723 {
2724 "script" : 0,
2725 "command" : null
2726 }
2727 ],
2728 "apparmor_switch" : null,
2729 "respawn_limit" : 10,
2730 "author" : null,
2731 "respawn" : 1,
2732 "nice" : -21,
2733 "limits" : [
2734 {
2735 "rlim_cur" : 0,
2736 "rlim_max" : 0
2737 },
2738 {
2739 "rlim_cur" : 0,
2740 "rlim_max" : 0
2741 },
2742 {
2743 "rlim_cur" : 0,
2744 "rlim_max" : 0
2745 },
2746 {
2747 "rlim_cur" : 0,
2748 "rlim_max" : 0
2749 },
2750 {
2751 "rlim_cur" : 0,
2752 "rlim_max" : 0
2753 },
2754 {
2755 "rlim_cur" : 0,
2756 "rlim_max" : 0
2757 },
2758 {
2759 "rlim_cur" : 0,
2760 "rlim_max" : 0
2761 },
2762 {
2763 "rlim_cur" : 0,
2764 "rlim_max" : 0
2765 },
2766 {
2767 "rlim_cur" : 0,
2768 "rlim_max" : 0
2769 },
2770 {
2771 "rlim_cur" : 0,
2772 "rlim_max" : 0
2773 },
2774 {
2775 "rlim_cur" : 0,
2776 "rlim_max" : 0
2777 },
2778 {
2779 "rlim_cur" : 0,
2780 "rlim_max" : 0
2781 },
2782 {
2783 "rlim_cur" : 0,
2784 "rlim_max" : 0
2785 },
2786 {
2787 "rlim_cur" : 0,
2788 "rlim_max" : 0
2789 },
2790 {
2791 "rlim_cur" : 0,
2792 "rlim_max" : 0
2793 },
2794 {
2795 "rlim_cur" : 0,
2796 "rlim_max" : 0
2797 }
2798 ],
2799 "oom_score_adj" : 0,
2800 "normalexit" : [],
2801 "kill_timeout" : 5,
2802 "usage" : null,
2803 "env" : [],
2804 "version" : null,
2805 "deleted" : 0,
2806 "task" : 0,
2807 "path" : "/com/ubuntu/Upstart/jobs/udev",
2808 "chdir" : null,
2809 "start_on" : [
2810 {
2811 "value" : 0,
2812 "name" : "virtual-filesystems",
2813 "type" : "EVENT_MATCH"
2814 }
2815 ],
2816 "umask" : 18,
2817 "setgid" : null
2818 },
2819 {
2820 "setuid" : null,
2821 "jobs" : [
2822 {
2823 "trace_state" : "TRACE_NONE",
2824 "failed" : 0,
2825 "state" : "JOB_RUNNING",
2826 "failed_process" : "PROCESS_INVALID",
2827 "pid" : [
2828 440,
2829 0,
2830 0,
2831 0,
2832 0,
2833 0
2834 ],
2835 "start_env" : [],
2836 "trace_forks" : 2,
2837 "respawn_time" : 0,
2838 "log" : [
2839 {
2840 "path" : null
2841 },
2842 {
2843 "path" : null
2844 },
2845 {
2846 "path" : null
2847 },
2848 {
2849 "path" : null
2850 },
2851 {
2852 "path" : null
2853 },
2854 {
2855 "path" : null
2856 }
2857 ],
2858 "respawn_count" : 0,
2859 "kill_process" : "PROCESS_INVALID",
2860 "stop_on" : [
2861 {
2862 "env" : [
2863 "udev"
2864 ],
2865 "value" : 0,
2866 "name" : "stopped",
2867 "type" : "EVENT_MATCH"
2868 }
2869 ],
2870 "env" : [
2871 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
2872 "TERM=linux",
2873 "JOB=udev",
2874 "INSTANCE=",
2875 "UPSTART_EVENTS=starting"
2876 ],
2877 "name" : "",
2878 "path" : "/com/ubuntu/Upstart/jobs/upstart_2dudev_2dbridge/_",
2879 "exit_status" : 0,
2880 "goal" : "JOB_START",
2881 "stop_env" : [],
2882 "fds" : []
2883 }
2884 ],
2885 "emits" : [
2886 "*-device-added",
2887 "*-device-removed",
2888 "*-device-changed",
2889 "*-device-online",
2890 "*-device-offline"
2891 ],
2892 "session" : 0,
2893 "debug" : 0,
2894 "export" : [],
2895 "reload_signal" : 1,
2896 "expect" : "EXPECT_DAEMON",
2897 "stop_on" : [
2898 {
2899 "env" : [
2900 "udev"
2901 ],
2902 "value" : 0,
2903 "name" : "stopped",
2904 "type" : "EVENT_MATCH"
2905 }
2906 ],
2907 "chroot" : null,
2908 "console" : "CONSOLE_LOG",
2909 "kill_signal" : 15,
2910 "name" : "upstart-udev-bridge",
2911 "instance" : "",
2912 "description" : "Bridge udev events into upstart",
2913 "respawn_interval" : 5,
2914 "process" : [
2915 {
2916 "script" : 0,
2917 "command" : "upstart-udev-bridge --daemon"
2918 },
2919 {
2920 "script" : 0,
2921 "command" : null
2922 },
2923 {
2924 "script" : 0,
2925 "command" : null
2926 },
2927 {
2928 "script" : 0,
2929 "command" : null
2930 },
2931 {
2932 "script" : 0,
2933 "command" : null
2934 },
2935 {
2936 "script" : 0,
2937 "command" : null
2938 }
2939 ],
2940 "apparmor_switch" : null,
2941 "respawn_limit" : 10,
2942 "author" : null,
2943 "respawn" : 1,
2944 "nice" : -21,
2945 "limits" : [
2946 {
2947 "rlim_cur" : 0,
2948 "rlim_max" : 0
2949 },
2950 {
2951 "rlim_cur" : 0,
2952 "rlim_max" : 0
2953 },
2954 {
2955 "rlim_cur" : 0,
2956 "rlim_max" : 0
2957 },
2958 {
2959 "rlim_cur" : 0,
2960 "rlim_max" : 0
2961 },
2962 {
2963 "rlim_cur" : 0,
2964 "rlim_max" : 0
2965 },
2966 {
2967 "rlim_cur" : 0,
2968 "rlim_max" : 0
2969 },
2970 {
2971 "rlim_cur" : 0,
2972 "rlim_max" : 0
2973 },
2974 {
2975 "rlim_cur" : 0,
2976 "rlim_max" : 0
2977 },
2978 {
2979 "rlim_cur" : 0,
2980 "rlim_max" : 0
2981 },
2982 {
2983 "rlim_cur" : 0,
2984 "rlim_max" : 0
2985 },
2986 {
2987 "rlim_cur" : 0,
2988 "rlim_max" : 0
2989 },
2990 {
2991 "rlim_cur" : 0,
2992 "rlim_max" : 0
2993 },
2994 {
2995 "rlim_cur" : 0,
2996 "rlim_max" : 0
2997 },
2998 {
2999 "rlim_cur" : 0,
3000 "rlim_max" : 0
3001 },
3002 {
3003 "rlim_cur" : 0,
3004 "rlim_max" : 0
3005 },
3006 {
3007 "rlim_cur" : 0,
3008 "rlim_max" : 0
3009 }
3010 ],
3011 "oom_score_adj" : 0,
3012 "normalexit" : [],
3013 "kill_timeout" : 5,
3014 "usage" : null,
3015 "env" : [],
3016 "version" : null,
3017 "deleted" : 0,
3018 "task" : 0,
3019 "path" : "/com/ubuntu/Upstart/jobs/upstart_2dudev_2dbridge",
3020 "chdir" : null,
3021 "start_on" : [
3022 {
3023 "env" : [
3024 "udev"
3025 ],
3026 "value" : 0,
3027 "name" : "starting",
3028 "type" : "EVENT_MATCH"
3029 }
3030 ],
3031 "umask" : 18,
3032 "setgid" : null
3033 },
3034 {
3035 "setuid" : null,
3036 "jobs" : [],
3037 "emits" : [],
3038 "session" : 0,
3039 "debug" : 0,
3040 "export" : [],
3041 "reload_signal" : 1,
3042 "expect" : "EXPECT_FORK",
3043 "chroot" : null,
3044 "console" : "CONSOLE_LOG",
3045 "kill_signal" : 15,
3046 "name" : "ureadahead-other",
3047 "instance" : "",
3048 "description" : "Read required files in advance (for other mountpoints)",
3049 "respawn_interval" : 5,
3050 "process" : [
3051 {
3052 "script" : 0,
3053 "command" : "/sbin/ureadahead --daemon $MOUNTPOINT"
3054 },
3055 {
3056 "script" : 0,
3057 "command" : null
3058 },
3059 {
3060 "script" : 0,
3061 "command" : null
3062 },
3063 {
3064 "script" : 0,
3065 "command" : null
3066 },
3067 {
3068 "script" : 0,
3069 "command" : null
3070 },
3071 {
3072 "script" : 0,
3073 "command" : null
3074 }
3075 ],
3076 "apparmor_switch" : null,
3077 "respawn_limit" : 10,
3078 "author" : null,
3079 "respawn" : 0,
3080 "nice" : -21,
3081 "limits" : [
3082 {
3083 "rlim_cur" : 0,
3084 "rlim_max" : 0
3085 },
3086 {
3087 "rlim_cur" : 0,
3088 "rlim_max" : 0
3089 },
3090 {
3091 "rlim_cur" : 0,
3092 "rlim_max" : 0
3093 },
3094 {
3095 "rlim_cur" : 0,
3096 "rlim_max" : 0
3097 },
3098 {
3099 "rlim_cur" : 0,
3100 "rlim_max" : 0
3101 },
3102 {
3103 "rlim_cur" : 0,
3104 "rlim_max" : 0
3105 },
3106 {
3107 "rlim_cur" : 0,
3108 "rlim_max" : 0
3109 },
3110 {
3111 "rlim_cur" : 0,
3112 "rlim_max" : 0
3113 },
3114 {
3115 "rlim_cur" : 0,
3116 "rlim_max" : 0
3117 },
3118 {
3119 "rlim_cur" : 0,
3120 "rlim_max" : 0
3121 },
3122 {
3123 "rlim_cur" : 0,
3124 "rlim_max" : 0
3125 },
3126 {
3127 "rlim_cur" : 0,
3128 "rlim_max" : 0
3129 },
3130 {
3131 "rlim_cur" : 0,
3132 "rlim_max" : 0
3133 },
3134 {
3135 "rlim_cur" : 0,
3136 "rlim_max" : 0
3137 },
3138 {
3139 "rlim_cur" : 0,
3140 "rlim_max" : 0
3141 },
3142 {
3143 "rlim_cur" : 0,
3144 "rlim_max" : 0
3145 }
3146 ],
3147 "oom_score_adj" : 0,
3148 "normalexit" : [
3149 0,
3150 4
3151 ],
3152 "kill_timeout" : 5,
3153 "usage" : null,
3154 "env" : [],
3155 "version" : null,
3156 "task" : 0,
3157 "path" : "/com/ubuntu/Upstart/jobs/ureadahead_2dother",
3158 "deleted" : 0,
3159 "chdir" : null,
3160 "start_on" : [
3161 {
3162 "env" : [
3163 "DEVICE=[/UL]*",
3164 "MOUNTPOINT=/?*"
3165 ],
3166 "value" : 0,
3167 "name" : "mounted",
3168 "type" : "EVENT_MATCH"
3169 }
3170 ],
3171 "umask" : 18,
3172 "setgid" : null
3173 },
3174 {
3175 "setuid" : null,
3176 "jobs" : [
3177 {
3178 "trace_state" : "TRACE_NONE",
3179 "failed" : 0,
3180 "state" : "JOB_RUNNING",
3181 "failed_process" : "PROCESS_INVALID",
3182 "pid" : [
3183 1057,
3184 0,
3185 0,
3186 0,
3187 0,
3188 0
3189 ],
3190 "start_env" : [],
3191 "trace_forks" : 1,
3192 "respawn_time" : 0,
3193 "log" : [
3194 {
3195 "path" : null
3196 },
3197 {
3198 "path" : null
3199 },
3200 {
3201 "path" : null
3202 },
3203 {
3204 "path" : null
3205 },
3206 {
3207 "path" : null
3208 },
3209 {
3210 "path" : null
3211 }
3212 ],
3213 "respawn_count" : 0,
3214 "kill_process" : "PROCESS_INVALID",
3215 "stop_on" : [
3216 {
3217 "env" : [
3218 "[!2345]"
3219 ],
3220 "value" : 0,
3221 "name" : "runlevel",
3222 "type" : "EVENT_MATCH"
3223 }
3224 ],
3225 "env" : [
3226 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
3227 "TERM=linux",
3228 "CRASH_DB_URL=https://daisy.ubuntu.com",
3229 "RUNLEVEL=2",
3230 "PREVLEVEL=N",
3231 "UPSTART_EVENTS=runlevel"
3232 ],
3233 "name" : "",
3234 "path" : "/com/ubuntu/Upstart/jobs/whoopsie/_",
3235 "exit_status" : 0,
3236 "goal" : "JOB_START",
3237 "stop_env" : [],
3238 "fds" : []
3239 }
3240 ],
3241 "emits" : [],
3242 "session" : 0,
3243 "debug" : 0,
3244 "export" : [],
3245 "reload_signal" : 1,
3246 "expect" : "EXPECT_FORK",
3247 "stop_on" : [
3248 {
3249 "env" : [
3250 "[!2345]"
3251 ],
3252 "value" : 0,
3253 "name" : "runlevel",
3254 "type" : "EVENT_MATCH"
3255 }
3256 ],
3257 "chroot" : null,
3258 "console" : "CONSOLE_LOG",
3259 "kill_signal" : 15,
3260 "name" : "whoopsie",
3261 "instance" : "",
3262 "description" : "crash report submission daemon",
3263 "respawn_interval" : 5,
3264 "process" : [
3265 {
3266 "script" : 0,
3267 "command" : "whoopsie"
3268 },
3269 {
3270 "script" : 1,
3271 "command" : " [ -x /usr/bin/ubiquity-dm ] && { stop; exit 0; }\n\n if ! grep report_crashes=true /etc/default/whoopsie -sqi; then\n stop; exit 0\n fi\n"
3272 },
3273 {
3274 "script" : 0,
3275 "command" : null
3276 },
3277 {
3278 "script" : 0,
3279 "command" : null
3280 },
3281 {
3282 "script" : 0,
3283 "command" : null
3284 },
3285 {
3286 "script" : 0,
3287 "command" : null
3288 }
3289 ],
3290 "apparmor_switch" : null,
3291 "respawn_limit" : 10,
3292 "author" : null,
3293 "respawn" : 1,
3294 "nice" : -21,
3295 "limits" : [
3296 {
3297 "rlim_cur" : 0,
3298 "rlim_max" : 0
3299 },
3300 {
3301 "rlim_cur" : 0,
3302 "rlim_max" : 0
3303 },
3304 {
3305 "rlim_cur" : 0,
3306 "rlim_max" : 0
3307 },
3308 {
3309 "rlim_cur" : 0,
3310 "rlim_max" : 0
3311 },
3312 {
3313 "rlim_cur" : 0,
3314 "rlim_max" : 0
3315 },
3316 {
3317 "rlim_cur" : 0,
3318 "rlim_max" : 0
3319 },
3320 {
3321 "rlim_cur" : 0,
3322 "rlim_max" : 0
3323 },
3324 {
3325 "rlim_cur" : 0,
3326 "rlim_max" : 0
3327 },
3328 {
3329 "rlim_cur" : 0,
3330 "rlim_max" : 0
3331 },
3332 {
3333 "rlim_cur" : 0,
3334 "rlim_max" : 0
3335 },
3336 {
3337 "rlim_cur" : 0,
3338 "rlim_max" : 0
3339 },
3340 {
3341 "rlim_cur" : 0,
3342 "rlim_max" : 0
3343 },
3344 {
3345 "rlim_cur" : 0,
3346 "rlim_max" : 0
3347 },
3348 {
3349 "rlim_cur" : 0,
3350 "rlim_max" : 0
3351 },
3352 {
3353 "rlim_cur" : 0,
3354 "rlim_max" : 0
3355 },
3356 {
3357 "rlim_cur" : 0,
3358 "rlim_max" : 0
3359 }
3360 ],
3361 "oom_score_adj" : 0,
3362 "normalexit" : [],
3363 "kill_timeout" : 5,
3364 "usage" : null,
3365 "env" : [
3366 "CRASH_DB_URL=https://daisy.ubuntu.com"
3367 ],
3368 "version" : null,
3369 "deleted" : 0,
3370 "task" : 0,
3371 "path" : "/com/ubuntu/Upstart/jobs/whoopsie",
3372 "chdir" : null,
3373 "start_on" : [
3374 {
3375 "env" : [
3376 "[2345]"
3377 ],
3378 "value" : 0,
3379 "name" : "runlevel",
3380 "type" : "EVENT_MATCH"
3381 }
3382 ],
3383 "umask" : 18,
3384 "setgid" : null
3385 },
3386 {
3387 "setuid" : null,
3388 "jobs" : [
3389 {
3390 "trace_state" : "TRACE_NONE",
3391 "failed" : 0,
3392 "state" : "JOB_RUNNING",
3393 "failed_process" : "PROCESS_INVALID",
3394 "pid" : [
3395 0,
3396 0,
3397 0,
3398 0,
3399 0,
3400 0
3401 ],
3402 "start_env" : [],
3403 "trace_forks" : 0,
3404 "respawn_time" : 0,
3405 "log" : [
3406 {
3407 "path" : null
3408 },
3409 {
3410 "path" : null
3411 },
3412 {
3413 "path" : null
3414 },
3415 {
3416 "path" : null
3417 },
3418 {
3419 "path" : null
3420 },
3421 {
3422 "path" : null
3423 }
3424 ],
3425 "respawn_count" : 0,
3426 "kill_process" : "PROCESS_INVALID",
3427 "stop_on" : [
3428 {
3429 "env" : [
3430 "[!2345]"
3431 ],
3432 "value" : 0,
3433 "name" : "runlevel",
3434 "type" : "EVENT_MATCH"
3435 }
3436 ],
3437 "env" : [
3438 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
3439 "TERM=linux",
3440 "enabled=1",
3441 "RUNLEVEL=2",
3442 "PREVLEVEL=N",
3443 "UPSTART_EVENTS=runlevel"
3444 ],
3445 "name" : "",
3446 "path" : "/com/ubuntu/Upstart/jobs/apport/_",
3447 "exit_status" : 0,
3448 "goal" : "JOB_START",
3449 "stop_env" : [],
3450 "fds" : []
3451 }
3452 ],
3453 "emits" : [],
3454 "session" : 0,
3455 "debug" : 0,
3456 "export" : [],
3457 "reload_signal" : 1,
3458 "expect" : "EXPECT_NONE",
3459 "stop_on" : [
3460 {
3461 "env" : [
3462 "[!2345]"
3463 ],
3464 "value" : 0,
3465 "name" : "runlevel",
3466 "type" : "EVENT_MATCH"
3467 }
3468 ],
3469 "chroot" : null,
3470 "console" : "CONSOLE_LOG",
3471 "kill_signal" : 15,
3472 "name" : "apport",
3473 "instance" : "",
3474 "description" : "automatic crash report generation",
3475 "respawn_interval" : 5,
3476 "process" : [
3477 {
3478 "script" : 0,
3479 "command" : null
3480 },
3481 {
3482 "script" : 1,
3483 "command" : " . /etc/default/apport\n [ \"$enabled\" = \"1\" ] || [ \"$force_start\" = \"1\" ] || exit 0\n\n mkdir -p -m 1777 /var/crash\n\n # check for kernel crash dump, convert it to apport report\n if [ -e /var/crash/vmcore ] || [ -n \"`ls /var/crash | egrep ^[0-9]{12}$`\" ]\n then\n\t/usr/share/apport/kernel_crashdump || true\n fi\n\n # check for incomplete suspend/resume or hibernate\n if [ -e /var/lib/pm-utils/status ]\n then\n /usr/share/apport/apportcheckresume || true\n rm -f /var/lib/pm-utils/status\n rm -f /var/lib/pm-utils/resume-hang.log\n fi\n\n echo \"|/usr/share/apport/apport %p %s %c\" > /proc/sys/kernel/core_pattern\n echo 2 > /proc/sys/fs/suid_dumpable\n"
3484 },
3485 {
3486 "script" : 0,
3487 "command" : null
3488 },
3489 {
3490 "script" : 0,
3491 "command" : null
3492 },
3493 {
3494 "script" : 1,
3495 "command" : " # Check for a hung resume. If we find one try and grab everything\n # we can to aid in its discovery\n if [ -e /var/lib/pm-utils/status ]\n then\n\tps -wwef > /var/lib/pm-utils/resume-hang.log\n fi\n\n if [ \"`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`\" != \"|\" ]\n then\n\texit 1\n else\n\techo 0 > /proc/sys/fs/suid_dumpable\n\techo \"core\" > /proc/sys/kernel/core_pattern\n fi\n"
3496 },
3497 {
3498 "script" : 0,
3499 "command" : null
3500 }
3501 ],
3502 "apparmor_switch" : null,
3503 "respawn_limit" : 10,
3504 "author" : null,
3505 "respawn" : 0,
3506 "nice" : -21,
3507 "limits" : [
3508 {
3509 "rlim_cur" : 0,
3510 "rlim_max" : 0
3511 },
3512 {
3513 "rlim_cur" : 0,
3514 "rlim_max" : 0
3515 },
3516 {
3517 "rlim_cur" : 0,
3518 "rlim_max" : 0
3519 },
3520 {
3521 "rlim_cur" : 0,
3522 "rlim_max" : 0
3523 },
3524 {
3525 "rlim_cur" : 0,
3526 "rlim_max" : 0
3527 },
3528 {
3529 "rlim_cur" : 0,
3530 "rlim_max" : 0
3531 },
3532 {
3533 "rlim_cur" : 0,
3534 "rlim_max" : 0
3535 },
3536 {
3537 "rlim_cur" : 0,
3538 "rlim_max" : 0
3539 },
3540 {
3541 "rlim_cur" : 0,
3542 "rlim_max" : 0
3543 },
3544 {
3545 "rlim_cur" : 0,
3546 "rlim_max" : 0
3547 },
3548 {
3549 "rlim_cur" : 0,
3550 "rlim_max" : 0
3551 },
3552 {
3553 "rlim_cur" : 0,
3554 "rlim_max" : 0
3555 },
3556 {
3557 "rlim_cur" : 0,
3558 "rlim_max" : 0
3559 },
3560 {
3561 "rlim_cur" : 0,
3562 "rlim_max" : 0
3563 },
3564 {
3565 "rlim_cur" : 0,
3566 "rlim_max" : 0
3567 },
3568 {
3569 "rlim_cur" : 0,
3570 "rlim_max" : 0
3571 }
3572 ],
3573 "oom_score_adj" : 0,
3574 "normalexit" : [],
3575 "kill_timeout" : 5,
3576 "usage" : null,
3577 "env" : [
3578 "enabled=1"
3579 ],
3580 "version" : null,
3581 "deleted" : 0,
3582 "task" : 0,
3583 "path" : "/com/ubuntu/Upstart/jobs/apport",
3584 "chdir" : null,
3585 "start_on" : [
3586 {
3587 "env" : [
3588 "[2345]"
3589 ],
3590 "value" : 0,
3591 "name" : "runlevel",
3592 "type" : "EVENT_MATCH"
3593 }
3594 ],
3595 "umask" : 18,
3596 "setgid" : null
3597 },
3598 {
3599 "setuid" : null,
3600 "jobs" : [],
3601 "emits" : [],
3602 "session" : 0,
3603 "debug" : 0,
3604 "export" : [],
3605 "reload_signal" : 1,
3606 "expect" : "EXPECT_NONE",
3607 "chroot" : null,
3608 "console" : "CONSOLE_LOG",
3609 "kill_signal" : 15,
3610 "name" : "console-setup",
3611 "instance" : "",
3612 "description" : "set console keymap",
3613 "respawn_interval" : 5,
3614 "process" : [
3615 {
3616 "script" : 0,
3617 "command" : "loadkeys /etc/console-setup/cached.kmap.gz"
3618 },
3619 {
3620 "script" : 0,
3621 "command" : null
3622 },
3623 {
3624 "script" : 0,
3625 "command" : null
3626 },
3627 {
3628 "script" : 0,
3629 "command" : null
3630 },
3631 {
3632 "script" : 0,
3633 "command" : null
3634 },
3635 {
3636 "script" : 0,
3637 "command" : null
3638 }
3639 ],
3640 "apparmor_switch" : null,
3641 "respawn_limit" : 10,
3642 "author" : null,
3643 "respawn" : 0,
3644 "nice" : -21,
3645 "limits" : [
3646 {
3647 "rlim_cur" : 0,
3648 "rlim_max" : 0
3649 },
3650 {
3651 "rlim_cur" : 0,
3652 "rlim_max" : 0
3653 },
3654 {
3655 "rlim_cur" : 0,
3656 "rlim_max" : 0
3657 },
3658 {
3659 "rlim_cur" : 0,
3660 "rlim_max" : 0
3661 },
3662 {
3663 "rlim_cur" : 0,
3664 "rlim_max" : 0
3665 },
3666 {
3667 "rlim_cur" : 0,
3668 "rlim_max" : 0
3669 },
3670 {
3671 "rlim_cur" : 0,
3672 "rlim_max" : 0
3673 },
3674 {
3675 "rlim_cur" : 0,
3676 "rlim_max" : 0
3677 },
3678 {
3679 "rlim_cur" : 0,
3680 "rlim_max" : 0
3681 },
3682 {
3683 "rlim_cur" : 0,
3684 "rlim_max" : 0
3685 },
3686 {
3687 "rlim_cur" : 0,
3688 "rlim_max" : 0
3689 },
3690 {
3691 "rlim_cur" : 0,
3692 "rlim_max" : 0
3693 },
3694 {
3695 "rlim_cur" : 0,
3696 "rlim_max" : 0
3697 },
3698 {
3699 "rlim_cur" : 0,
3700 "rlim_max" : 0
3701 },
3702 {
3703 "rlim_cur" : 0,
3704 "rlim_max" : 0
3705 },
3706 {
3707 "rlim_cur" : 0,
3708 "rlim_max" : 0
3709 }
3710 ],
3711 "oom_score_adj" : 0,
3712 "normalexit" : [],
3713 "kill_timeout" : 5,
3714 "usage" : null,
3715 "env" : [],
3716 "version" : null,
3717 "task" : 1,
3718 "path" : "/com/ubuntu/Upstart/jobs/console_2dsetup",
3719 "deleted" : 0,
3720 "chdir" : null,
3721 "start_on" : [
3722 {
3723 "value" : 0,
3724 "name" : "virtual-filesystems",
3725 "type" : "EVENT_MATCH"
3726 },
3727 {
3728 "env" : [
3729 "rcS"
3730 ],
3731 "value" : 0,
3732 "name" : "starting",
3733 "type" : "EVENT_MATCH"
3734 },
3735 {
3736 "value" : 0,
3737 "type" : "EVENT_OR"
3738 },
3739 {
3740 "env" : [
3741 "mountall-shell"
3742 ],
3743 "value" : 0,
3744 "name" : "starting",
3745 "type" : "EVENT_MATCH"
3746 },
3747 {
3748 "value" : 0,
3749 "type" : "EVENT_OR"
3750 }
3751 ],
3752 "umask" : 18,
3753 "setgid" : null
3754 },
3755 {
3756 "setuid" : null,
3757 "jobs" : [],
3758 "emits" : [],
3759 "session" : 0,
3760 "debug" : 0,
3761 "export" : [],
3762 "reload_signal" : 1,
3763 "expect" : "EXPECT_NONE",
3764 "chroot" : null,
3765 "console" : "CONSOLE_LOG",
3766 "kill_signal" : 15,
3767 "name" : "hwclock-save",
3768 "instance" : "",
3769 "description" : "save system clock to hardware clock",
3770 "respawn_interval" : 5,
3771 "process" : [
3772 {
3773 "script" : 1,
3774 "command" : ". /etc/default/rcS\n[ \"$UTC\" = \"yes\" ] && tz=\"--utc\" || tz=\"--localtime\"\n[ \"$BADYEAR\" = \"yes\" ] && badyear=\"--badyear\"\nexec hwclock --rtc=/dev/rtc0 --systohc $tz --noadjfile $badyear\n"
3775 },
3776 {
3777 "script" : 0,
3778 "command" : null
3779 },
3780 {
3781 "script" : 0,
3782 "command" : null
3783 },
3784 {
3785 "script" : 0,
3786 "command" : null
3787 },
3788 {
3789 "script" : 0,
3790 "command" : null
3791 },
3792 {
3793 "script" : 0,
3794 "command" : null
3795 }
3796 ],
3797 "apparmor_switch" : null,
3798 "respawn_limit" : 10,
3799 "author" : null,
3800 "respawn" : 0,
3801 "nice" : -21,
3802 "limits" : [
3803 {
3804 "rlim_cur" : 0,
3805 "rlim_max" : 0
3806 },
3807 {
3808 "rlim_cur" : 0,
3809 "rlim_max" : 0
3810 },
3811 {
3812 "rlim_cur" : 0,
3813 "rlim_max" : 0
3814 },
3815 {
3816 "rlim_cur" : 0,
3817 "rlim_max" : 0
3818 },
3819 {
3820 "rlim_cur" : 0,
3821 "rlim_max" : 0
3822 },
3823 {
3824 "rlim_cur" : 0,
3825 "rlim_max" : 0
3826 },
3827 {
3828 "rlim_cur" : 0,
3829 "rlim_max" : 0
3830 },
3831 {
3832 "rlim_cur" : 0,
3833 "rlim_max" : 0
3834 },
3835 {
3836 "rlim_cur" : 0,
3837 "rlim_max" : 0
3838 },
3839 {
3840 "rlim_cur" : 0,
3841 "rlim_max" : 0
3842 },
3843 {
3844 "rlim_cur" : 0,
3845 "rlim_max" : 0
3846 },
3847 {
3848 "rlim_cur" : 0,
3849 "rlim_max" : 0
3850 },
3851 {
3852 "rlim_cur" : 0,
3853 "rlim_max" : 0
3854 },
3855 {
3856 "rlim_cur" : 0,
3857 "rlim_max" : 0
3858 },
3859 {
3860 "rlim_cur" : 0,
3861 "rlim_max" : 0
3862 },
3863 {
3864 "rlim_cur" : 0,
3865 "rlim_max" : 0
3866 }
3867 ],
3868 "oom_score_adj" : 0,
3869 "normalexit" : [],
3870 "kill_timeout" : 5,
3871 "usage" : null,
3872 "env" : [],
3873 "version" : null,
3874 "task" : 1,
3875 "path" : "/com/ubuntu/Upstart/jobs/hwclock_2dsave",
3876 "deleted" : 0,
3877 "chdir" : null,
3878 "start_on" : [
3879 {
3880 "env" : [
3881 "[06]"
3882 ],
3883 "value" : 0,
3884 "name" : "runlevel",
3885 "type" : "EVENT_MATCH"
3886 }
3887 ],
3888 "umask" : 18,
3889 "setgid" : null
3890 },
3891 {
3892 "setuid" : null,
3893 "jobs" : [],
3894 "emits" : [],
3895 "session" : 0,
3896 "debug" : 0,
3897 "export" : [],
3898 "reload_signal" : 1,
3899 "expect" : "EXPECT_FORK",
3900 "stop_on" : [
3901 {
3902 "env" : [
3903 "[!2345]"
3904 ],
3905 "value" : 0,
3906 "name" : "runlevel",
3907 "type" : "EVENT_MATCH"
3908 }
3909 ],
3910 "chroot" : null,
3911 "console" : "CONSOLE_LOG",
3912 "kill_signal" : 15,
3913 "name" : "irqbalance",
3914 "instance" : "",
3915 "description" : "CPU interrupts balancing daemon",
3916 "respawn_interval" : 5,
3917 "process" : [
3918 {
3919 "script" : 1,
3920 "command" : "\ttest -f /etc/default/irqbalance && . /etc/default/irqbalance\n\n\ttest \"$ENABLED\" != \"0\" || exit 0\n\n\tif test \"$ONESHOT\" != \"0\"; then\n\t\tDOPTIONS=\"--oneshot\"\n\tfi\n\n\texec /usr/sbin/irqbalance $DOPTIONS\n\n"
3921 },
3922 {
3923 "script" : 0,
3924 "command" : null
3925 },
3926 {
3927 "script" : 0,
3928 "command" : null
3929 },
3930 {
3931 "script" : 0,
3932 "command" : null
3933 },
3934 {
3935 "script" : 0,
3936 "command" : null
3937 },
3938 {
3939 "script" : 0,
3940 "command" : null
3941 }
3942 ],
3943 "apparmor_switch" : null,
3944 "respawn_limit" : 10,
3945 "author" : "Chuck Short <zulcss@ubuntu.com>",
3946 "respawn" : 0,
3947 "nice" : -21,
3948 "limits" : [
3949 {
3950 "rlim_cur" : 0,
3951 "rlim_max" : 0
3952 },
3953 {
3954 "rlim_cur" : 0,
3955 "rlim_max" : 0
3956 },
3957 {
3958 "rlim_cur" : 0,
3959 "rlim_max" : 0
3960 },
3961 {
3962 "rlim_cur" : 0,
3963 "rlim_max" : 0
3964 },
3965 {
3966 "rlim_cur" : 0,
3967 "rlim_max" : 0
3968 },
3969 {
3970 "rlim_cur" : 0,
3971 "rlim_max" : 0
3972 },
3973 {
3974 "rlim_cur" : 0,
3975 "rlim_max" : 0
3976 },
3977 {
3978 "rlim_cur" : 0,
3979 "rlim_max" : 0
3980 },
3981 {
3982 "rlim_cur" : 0,
3983 "rlim_max" : 0
3984 },
3985 {
3986 "rlim_cur" : 0,
3987 "rlim_max" : 0
3988 },
3989 {
3990 "rlim_cur" : 0,
3991 "rlim_max" : 0
3992 },
3993 {
3994 "rlim_cur" : 0,
3995 "rlim_max" : 0
3996 },
3997 {
3998 "rlim_cur" : 0,
3999 "rlim_max" : 0
4000 },
4001 {
4002 "rlim_cur" : 0,
4003 "rlim_max" : 0
4004 },
4005 {
4006 "rlim_cur" : 0,
4007 "rlim_max" : 0
4008 },
4009 {
4010 "rlim_cur" : 0,
4011 "rlim_max" : 0
4012 }
4013 ],
4014 "oom_score_adj" : 0,
4015 "normalexit" : [],
4016 "kill_timeout" : 5,
4017 "usage" : null,
4018 "env" : [],
4019 "version" : null,
4020 "deleted" : 0,
4021 "task" : 0,
4022 "path" : "/com/ubuntu/Upstart/jobs/irqbalance",
4023 "chdir" : null,
4024 "start_on" : [
4025 {
4026 "env" : [
4027 "[2345]"
4028 ],
4029 "value" : 0,
4030 "name" : "runlevel",
4031 "type" : "EVENT_MATCH"
4032 }
4033 ],
4034 "umask" : 18,
4035 "setgid" : null
4036 },
4037 {
4038 "setuid" : null,
4039 "jobs" : [],
4040 "emits" : [],
4041 "session" : 0,
4042 "debug" : 0,
4043 "export" : [],
4044 "reload_signal" : 1,
4045 "expect" : "EXPECT_NONE",
4046 "chroot" : null,
4047 "console" : "CONSOLE_LOG",
4048 "kill_signal" : 15,
4049 "name" : "plymouth-log",
4050 "instance" : "",
4051 "description" : "Flush boot log to disk",
4052 "respawn_interval" : 5,
4053 "process" : [
4054 {
4055 "script" : 0,
4056 "command" : "/bin/plymouth update-root-fs --read-write"
4057 },
4058 {
4059 "script" : 0,
4060 "command" : null
4061 },
4062 {
4063 "script" : 0,
4064 "command" : null
4065 },
4066 {
4067 "script" : 0,
4068 "command" : null
4069 },
4070 {
4071 "script" : 0,
4072 "command" : null
4073 },
4074 {
4075 "script" : 0,
4076 "command" : null
4077 }
4078 ],
4079 "apparmor_switch" : null,
4080 "respawn_limit" : 10,
4081 "author" : null,
4082 "respawn" : 0,
4083 "nice" : -21,
4084 "limits" : [
4085 {
4086 "rlim_cur" : 0,
4087 "rlim_max" : 0
4088 },
4089 {
4090 "rlim_cur" : 0,
4091 "rlim_max" : 0
4092 },
4093 {
4094 "rlim_cur" : 0,
4095 "rlim_max" : 0
4096 },
4097 {
4098 "rlim_cur" : 0,
4099 "rlim_max" : 0
4100 },
4101 {
4102 "rlim_cur" : 0,
4103 "rlim_max" : 0
4104 },
4105 {
4106 "rlim_cur" : 0,
4107 "rlim_max" : 0
4108 },
4109 {
4110 "rlim_cur" : 0,
4111 "rlim_max" : 0
4112 },
4113 {
4114 "rlim_cur" : 0,
4115 "rlim_max" : 0
4116 },
4117 {
4118 "rlim_cur" : 0,
4119 "rlim_max" : 0
4120 },
4121 {
4122 "rlim_cur" : 0,
4123 "rlim_max" : 0
4124 },
4125 {
4126 "rlim_cur" : 0,
4127 "rlim_max" : 0
4128 },
4129 {
4130 "rlim_cur" : 0,
4131 "rlim_max" : 0
4132 },
4133 {
4134 "rlim_cur" : 0,
4135 "rlim_max" : 0
4136 },
4137 {
4138 "rlim_cur" : 0,
4139 "rlim_max" : 0
4140 },
4141 {
4142 "rlim_cur" : 0,
4143 "rlim_max" : 0
4144 },
4145 {
4146 "rlim_cur" : 0,
4147 "rlim_max" : 0
4148 }
4149 ],
4150 "oom_score_adj" : 0,
4151 "normalexit" : [],
4152 "kill_timeout" : 5,
4153 "usage" : null,
4154 "env" : [],
4155 "version" : null,
4156 "task" : 1,
4157 "path" : "/com/ubuntu/Upstart/jobs/plymouth_2dlog",
4158 "deleted" : 0,
4159 "chdir" : null,
4160 "start_on" : [
4161 {
4162 "value" : 0,
4163 "name" : "filesystem",
4164 "type" : "EVENT_MATCH"
4165 }
4166 ],
4167 "umask" : 18,
4168 "setgid" : null
4169 },
4170 {
4171 "setuid" : null,
4172 "jobs" : [
4173 {
4174 "trace_state" : "TRACE_NONE",
4175 "failed" : 0,
4176 "state" : "JOB_RUNNING",
4177 "failed_process" : "PROCESS_INVALID",
4178 "pid" : [
4179 520,
4180 0,
4181 0,
4182 0,
4183 0,
4184 0
4185 ],
4186 "start_env" : [],
4187 "trace_forks" : 0,
4188 "respawn_time" : 0,
4189 "log" : [
4190 {
4191 "remote_closed" : 0,
4192 "detached" : 0,
4193 "uid" : 0,
4194 "open_errno" : 9,
4195 "path" : "/var/log/upstart/systemd-logind.log",
4196 "io_watch_fd" : 19,
4197 "fd" : 11
4198 },
4199 {
4200 "path" : null
4201 },
4202 {
4203 "path" : null
4204 },
4205 {
4206 "path" : null
4207 },
4208 {
4209 "path" : null
4210 },
4211 {
4212 "path" : null
4213 }
4214 ],
4215 "respawn_count" : 0,
4216 "kill_process" : "PROCESS_INVALID",
4217 "stop_on" : [
4218 {
4219 "env" : [
4220 "dbus"
4221 ],
4222 "value" : 0,
4223 "name" : "stopping",
4224 "type" : "EVENT_MATCH"
4225 }
4226 ],
4227 "env" : [
4228 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
4229 "TERM=linux",
4230 "SYSTEMD_LOG_TARGET=syslog",
4231 "JOB=dbus",
4232 "INSTANCE=",
4233 "UPSTART_EVENTS=started"
4234 ],
4235 "name" : "",
4236 "path" : "/com/ubuntu/Upstart/jobs/systemd_2dlogind/_",
4237 "exit_status" : 0,
4238 "goal" : "JOB_START",
4239 "stop_env" : [],
4240 "fds" : []
4241 }
4242 ],
4243 "emits" : [],
4244 "session" : 0,
4245 "debug" : 0,
4246 "export" : [],
4247 "reload_signal" : 1,
4248 "expect" : "EXPECT_NONE",
4249 "stop_on" : [
4250 {
4251 "env" : [
4252 "dbus"
4253 ],
4254 "value" : 0,
4255 "name" : "stopping",
4256 "type" : "EVENT_MATCH"
4257 }
4258 ],
4259 "chroot" : null,
4260 "console" : "CONSOLE_LOG",
4261 "kill_signal" : 15,
4262 "name" : "systemd-logind",
4263 "instance" : "",
4264 "description" : "SystemD login management service",
4265 "respawn_interval" : 5,
4266 "process" : [
4267 {
4268 "script" : 0,
4269 "command" : "/lib/systemd/systemd-logind"
4270 },
4271 {
4272 "script" : 1,
4273 "command" : " # only start if PAM module is actually available, not if libpam-systemd is\n # removed but not purged\n [ -e /lib/*/security/pam_systemd.so ] || { stop; exit 0; }\n\n # this is being done by systemd or mountall usually, but not during\n # upgrades from earlier distro releases\n if ! mountpoint -q /sys/fs/cgroup; then\n mount -t tmpfs -o uid=0,gid=0,mode=0755,size=1024 none /sys/fs/cgroup\n fi\n mkdir -p /run/systemd\n if ! mountpoint -q /sys/fs/cgroup/systemd; then\n mkdir -p /sys/fs/cgroup/systemd\n mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd /sys/fs/cgroup/systemd\n fi\n"
4274 },
4275 {
4276 "script" : 0,
4277 "command" : null
4278 },
4279 {
4280 "script" : 0,
4281 "command" : null
4282 },
4283 {
4284 "script" : 0,
4285 "command" : null
4286 },
4287 {
4288 "script" : 0,
4289 "command" : null
4290 }
4291 ],
4292 "apparmor_switch" : null,
4293 "respawn_limit" : 10,
4294 "author" : null,
4295 "respawn" : 1,
4296 "nice" : -21,
4297 "limits" : [
4298 {
4299 "rlim_cur" : 0,
4300 "rlim_max" : 0
4301 },
4302 {
4303 "rlim_cur" : 0,
4304 "rlim_max" : 0
4305 },
4306 {
4307 "rlim_cur" : 0,
4308 "rlim_max" : 0
4309 },
4310 {
4311 "rlim_cur" : 0,
4312 "rlim_max" : 0
4313 },
4314 {
4315 "rlim_cur" : 0,
4316 "rlim_max" : 0
4317 },
4318 {
4319 "rlim_cur" : 0,
4320 "rlim_max" : 0
4321 },
4322 {
4323 "rlim_cur" : 0,
4324 "rlim_max" : 0
4325 },
4326 {
4327 "rlim_cur" : 16384,
4328 "rlim_max" : 16384
4329 },
4330 {
4331 "rlim_cur" : 0,
4332 "rlim_max" : 0
4333 },
4334 {
4335 "rlim_cur" : 0,
4336 "rlim_max" : 0
4337 },
4338 {
4339 "rlim_cur" : 0,
4340 "rlim_max" : 0
4341 },
4342 {
4343 "rlim_cur" : 0,
4344 "rlim_max" : 0
4345 },
4346 {
4347 "rlim_cur" : 0,
4348 "rlim_max" : 0
4349 },
4350 {
4351 "rlim_cur" : 0,
4352 "rlim_max" : 0
4353 },
4354 {
4355 "rlim_cur" : 0,
4356 "rlim_max" : 0
4357 },
4358 {
4359 "rlim_cur" : 0,
4360 "rlim_max" : 0
4361 }
4362 ],
4363 "oom_score_adj" : 0,
4364 "normalexit" : [],
4365 "kill_timeout" : 5,
4366 "usage" : null,
4367 "env" : [
4368 "SYSTEMD_LOG_TARGET=syslog"
4369 ],
4370 "version" : null,
4371 "deleted" : 0,
4372 "task" : 0,
4373 "path" : "/com/ubuntu/Upstart/jobs/systemd_2dlogind",
4374 "chdir" : null,
4375 "start_on" : [
4376 {
4377 "env" : [
4378 "dbus"
4379 ],
4380 "value" : 0,
4381 "name" : "started",
4382 "type" : "EVENT_MATCH"
4383 }
4384 ],
4385 "umask" : 18,
4386 "setgid" : null
4387 },
4388 {
4389 "setuid" : null,
4390 "jobs" : [
4391 {
4392 "trace_state" : "TRACE_NONE",
4393 "failed" : 0,
4394 "state" : "JOB_RUNNING",
4395 "failed_process" : "PROCESS_INVALID",
4396 "pid" : [
4397 941,
4398 0,
4399 0,
4400 0,
4401 0,
4402 0
4403 ],
4404 "start_env" : [],
4405 "trace_forks" : 0,
4406 "respawn_time" : 0,
4407 "log" : [
4408 {
4409 "path" : null
4410 },
4411 {
4412 "path" : null
4413 },
4414 {
4415 "path" : null
4416 },
4417 {
4418 "path" : null
4419 },
4420 {
4421 "path" : null
4422 },
4423 {
4424 "path" : null
4425 }
4426 ],
4427 "respawn_count" : 0,
4428 "kill_process" : "PROCESS_INVALID",
4429 "stop_on" : [
4430 {
4431 "env" : [
4432 "[!23]"
4433 ],
4434 "value" : 0,
4435 "name" : "runlevel",
4436 "type" : "EVENT_MATCH"
4437 }
4438 ],
4439 "env" : [
4440 "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin",
4441 "TERM=linux",
4442 "RUNLEVEL=2",
4443 "PREVLEVEL=N",
4444 "UPSTART_EVENTS=runlevel not-container"
4445 ],
4446 "name" : "",
4447 "path" : "/com/ubuntu/Upstart/jobs/tty5/_",
4448 "exit_status" : 0,
4449 "goal" : "JOB_START",
4450 "stop_env" : [],
4451 "fds" : []
4452 }
4453 ],
4454 "emits" : [],
4455 "session" : 0,
4456 "debug" : 0,
4457 "export" : [],
4458 "reload_signal" : 1,
4459 "expect" : "EXPECT_NONE",
4460 "stop_on" : [
4461 {
4462 "env" : [
4463 "[!23]"
4464 ],
4465 "value" : 0,
4466 "name" : "runlevel",
4467 "type" : "EVENT_MATCH"
4468 }
4469 ],
4470 "chroot" : null,
4471 "console" : "CONSOLE_LOG",
4472 "kill_signal" : 15,
4473 "name" : "tty5",
4474 "instance" : "",
4475 "description" : null,
4476 "respawn_interval" : 5,
4477 "process" : [
4478 {
4479 "script" : 0,
4480 "command" : "/sbin/getty -8 38400 tty5"
4481 },
4482 {
4483 "script" : 0,
4484 "command" : null
4485 },
4486 {
4487 "script" : 0,
4488 "command" : null
4489 },
4490 {
4491 "script" : 0,
4492 "command" : null
4493 },
4494 {
4495 "script" : 0,
4496 "command" : null
4497 },
4498 {
4499 "script" : 0,
4500 "command" : null
4501 }
4502 ],
4503 "apparmor_switch" : null,
4504 "respawn_limit" : 10,
4505 "author" : null,
4506 "respawn" : 1,
4507 "nice" : -21,
4508 "limits" : [
4509 {
4510 "rlim_cur" : 0,
4511 "rlim_max" : 0
4512 },
4513 {
4514 "rlim_cur" : 0,
4515 "rlim_max" : 0
4516 },
4517 {
4518 "rlim_cur" : 0,
4519 "rlim_max" : 0
4520 },
4521 {
4522 "rlim_cur" : 0,
4523 "rlim_max" : 0
4524 },
4525 {
4526 "rlim_cur" : 0,
4527 "rlim_max" : 0
4528 },
4529 {
4530 "rlim_cur" : 0,
4531 "rlim_max" : 0
4532 },
4533 {
4534 "rlim_cur" : 0,
4535 "rlim_max" : 0
4536 },
4537 {
4538 "rlim_cur" : 0,
4539 "rlim_max" : 0
4540 },
4541 {
4542 "rlim_cur" : 0,
4543 "rlim_max" : 0
4544 },
4545 {
4546 "rlim_cur" : 0,
4547 "rlim_max" : 0
4548 },
4549 {
4550 "rlim_cur" : 0,
4551 "rlim_max" : 0
4552 },
4553 {
4554 "rlim_cur" : 0,
4555 "rlim_max" : 0
4556 },
4557 {
4558 "rlim_cur" : 0,
4559 "rlim_max" : 0
4560 },
4561 {
4562 "rlim_cur" : 0,
4563 "rlim_max" : 0
4564 },
4565 {
4566 "rlim_cur" : 0,
4567 "rlim_max" : 0
4568 },
4569 {
4570 "rlim_cur" : 0,
4571 "rlim_max" : 0
4572 }
4573 ],
4574 "oom_score_adj" : 0,
4575 "normalexit" : [],
4576 "kill_timeout" : 5,
4577 "usage" : null,
4578 "env" : [],
4579 "version" : null,
4580 "deleted" : 0,
4581 "task" : 0,
4582 "path" : "/com/ubuntu/Upstart/jobs/tty5",
4583 "chdir" : null,
4584 "start_on" : [
4585 {
4586 "env" : [
4587 "[23]"
4588 ],
4589 "value" : 0,
4590 "name" : "runlevel",
4591 "type" : "EVENT_MATCH"
4592 },
4593 {
4594 "value" : 0,
4595 "name" : "not-container",
4596 "type" : "EVENT_MATCH"
4597 },
4598 {
4599 "value" : 0,
4600 "type" : "EVENT_AND"
4601 }
4602 ],
4603 "umask" : 18,
4604 "setgid" : null
4605 },
4606 {
4607 "setuid" : null,
4608 "jobs" : [],
4609 "emits" : [
4610 "failsafe-boot"
4611 ],
4612 "session" : 0,
4613 "debug" : 0,
4614 "export" : [],
4615 "reload_signal" : 1,
4616 "expect" : "EXPECT_NONE",
4617 "stop_on" : [
4618 {
4619 "value" : 0,
4620 "name" : "static-network-up",
4621 "type" : "EVENT_MATCH"
4622 },
4623 {
4624 "env" : [
4625 "rc-sysinit"
4626 ],
4627 "value" : 0,
4628 "name" : "starting",
4629 "type" : "EVENT_MATCH"
4630 },
4631 {
4632 "value" : 0,
4633 "type" : "EVENT_OR"
4634 }
4635 ],
4636 "chroot" : null,
4637 "console" : "CONSOLE_OUTPUT",
4638 "kill_signal" : 15,
4639 "name" : "failsafe",
4640 "instance" : "",
4641 "description" : "Failsafe Boot Delay",
4642 "respawn_interval" : 5,
4643 "process" : [
4644 {
4645 "script" : 1,
4646 "command" : "\t# Determine if plymouth is available\n\tif [ -x /bin/plymouth ] && /bin/plymouth --ping ; then\n\t\tPLYMOUTH=/bin/plymouth\n\telse\n\t\tPLYMOUTH=\":\"\n\tfi\n\n # The point here is to wait for 2 minutes before forcibly booting \n # the system. Anything that is in an \"or\" condition with 'started \n # failsafe' in rc-sysinit deserves consideration for mentioning in\n # these messages. currently only static-network-up counts for that.\n\n\tsleep 20\n\n # Plymouth errors should not stop the script because we *must* reach\n # the end of this script to avoid letting the system spin forever\n # waiting on it to start.\n\t$PLYMOUTH message --text=\"Waiting for network configuration...\" || :\n\tsleep 40\n\n\t$PLYMOUTH message --text=\"Waiting up to 60 more seconds for network configuration...\" || :\n\tsleep 59\n\t$PLYMOUTH message --text=\"Booting system without full network configuration...\" || :\n\n # give user 1 second to see this message since plymouth will go\n # away as soon as failsafe starts.\n\tsleep 1\n exec initctl emit --no-wait failsafe-boot\n"
4647 },
4648 {
4649 "script" : 0,
4650 "command" : null
4651 },
4652 {
4653 "script" : 0,
4654 "command" : "logger -t 'failsafe' -p daemon.warning \"Failsafe of 120 seconds reached.\""
4655 },
4656 {
4657 "script" : 0,
4658 "command" : null
4659 },
4660 {
4661 "script" : 0,
4662 "command" : null
4663 },
4664 {
4665 "script" : 0,
4666 "command" : null
4667 }
4668 ],
4669 "apparmor_switch" : null,
4670 "respawn_limit" : 10,
4671 "author" : "Clint Byrum <clint@ubuntu.com>",
4672 "respawn" : 0,
4673 "nice" : -21,
4674 "limits" : [
4675 {
4676 "rlim_cur" : 0,
4677 "rlim_max" : 0
4678 },
4679 {
4680 "rlim_cur" : 0,
4681 "rlim_max" : 0
4682 },
4683 {
4684 "rlim_cur" : 0,
4685 "rlim_max" : 0
4686 },
4687 {
4688 "rlim_cur" : 0,
4689 "rlim_max" : 0
4690 },
4691 {
4692 "rlim_cur" : 0,
4693 "rlim_max" : 0
4694 },
4695 {
4696 "rlim_cur" : 0,
4697 "rlim_max" : 0
4698 },
4699 {
4700 "rlim_cur" : 0,
4701 "rlim_max" : 0
4702 },
4703 {
4704 "rlim_cur" : 0,
4705 "rlim_max" : 0
4706 },
4707 {
4708 "rlim_cur" : 0,
4709 "rlim_max" : 0
4710 },
4711 {
4712 "rlim_cur" : 0,
4713 "rlim_max" : 0
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches