-
Notifications
You must be signed in to change notification settings - Fork 2
/
Control.plist
181 lines (175 loc) · 7.16 KB
/
Control.plist
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
{
/* The main configuration file.
*/
* = {
/* Common section for any/all hosts
*/
* = {
};
Control = {
/* Section for the Control server on any master host.
*/
};
Feep = {
/* Section for the process Feep on any/all hosts.
*/
};
Foo = {
/* Section for the process Foo on any/all hosts.
*/
};
};
localhost = {
/* Section for the host named localhost
*/
* = {
/* Common section for any/all processes on localhost.
*/
};
Bar = {
/* Section for process Bar on localhost
*/
};
Foo = {
/* Section for process Foo on localhost
*/
};
Command = {
/* Section for Command server on localhost
* The 'Launch' dictionary specifies what programs may be launched.
*/
Launch = {
/* Specifications of how to launch individual programs:
*
* Disabled = (boolean) Whether this program can be launched
* Prog = (string) The name (or full path) of the executable
* Home = (string) The subdirectory the program is started up in
* (relative to the user home directory) and the
* subdirectory in which debug logs are stored.
* Equivalent to using -HomeDirectory in Args.
* Args = (array) The arguments supplied to the program
* Auto = (boolean) Whether the program is started automatically
* Time = (integer) How many seconds after a crash until the
* automatic restart (defaults to 0; fast)
* AddE = (dictionary) key/value pairs added to the environment
* SetE = (dictionary) key/value pairs to be used as environment
* Deps = (array) Names of other processes needed by this one
* KeepStandardOutput = (boolean) Don't close stdout
* KeepStandardError = (boolean) Don't close stderr
*
* ValgrindPath = (string) Run under valgrind (unless empty)
* ValgrindArgs = (array) Run under valgrind using these args
*
* PingTime = (integer) If greater than zero, this is the ping delay in
* seconds (otherwise the default of 240 is used,
* or as specified by the CommandPingTime default).
* When a process has been unresponsive to the
* Command server for this number of seconds, that
* process is considered to be hung.
* HungTime = (integer) If greater than zero this the interval after
* which an apparently hung process has a restart
* scheduled. If/when the restart is scheduled
* either the HungTool or gcore is executed
* to save information about the hung process.
* HungTool = (string) The name of a tool or script to be executed
* after HungTime in order to gather information
* about the hung process. It's arguments will
* be the process name and the process ID.
* QuitTime = (integer) If greater than zero this the interval before
* a process is forcibly killed if it is stopping
* or restarting too slowly. The default (used
* if this is not specified and greater than zero)
* is 120 seconds (or as specified by the
* CommandQuitTime default).
*
* If a process hangs and is configured to auto-restart when hung:
* The total time taken is (PingTime + HungTime + StopTime)
* After PingTime seconds of unresponsiveness an alarm is raised.
* Then after HungTime seconds restart is initiated and HungTool runs.
* Then after StopTime seconds the process is forcibly killed.
*
* If the system is running with encrypted Distributed Objects then
* child processes may be launched with specific TLS options (rather
* than inheriting the configuration of the Command server) by adding
* ClientOptionsForTLS = {dictionary};
* to specify the options used when the child connects to another
* process (eg when the child registers with the Command server) and
* ServerOptionsForTLS = {dictionary};
* to specify the options used when another process connects to the
* child process.
* If the child is supposed to use the same options in both cases,
* a single OptionsForTLS dictionary may be used instead.
* The contents of the dictionary are TLS configuration keys and
* values as per the gnustep-base documentation:
* GSTLSCAFile GSTLSCertificateFile GSTLSCertificateKeyFile
* GSTLSCertificateKeyPassword GSTLSDebug GSTLSPriority
* GSTLSRemoteHosts GSTLSRevokeFile GSTLSServerName GSTLSVerify
*/
Foo = {
Prog = "/usr/GNUstep/Local/Tools/Foo"; // Full path to binary
Home = "Test"; // Directory to run in
Args = ("-Debug", "YES"); // Args to launch with
Auto = NO; // Auto-launch?
KeepStandardOutput = YES; // Don't close stdout
KeepStandardError = YES; // Don't close stderr
};
Bar = {
Prog = "Bar"; // Name of binary
Home = "Test"; // Directory to run in
Args = ("-Debug", "YES"); // Args to launch with
Auto = YES; // Auto-launch?
Deps = (Foo); // if Foo is running
};
Feep = {
Prog = "Feep"; // RName of binary
Home = "Test"; // Subdirectory
Auto = YES; // Auto-launch?
Time = 30; // Interval for relaunching after crash
};
};
/* Specify launch order ... Feep first, Bar second
* Processes not listed here are launched in lexicographical order
* after any processes which are listed.
*/
LaunchOrder = (
Feep, // Launch Feep first
Bar // Launch Bar second
);
/* Specify how many tasks the Command server may have launching
* concurrently (default is 20). You may want to set this to a
* lower value in order to reduce load when the system start up.
*/
LaunchLimit = 20;
/* Specify whether, when the Command server starts, launching of
* tasks should be suspended (as if the 'suspend' command had been
* sent to it from the Console).
* By default this is NO.
*/
LaunchStartSuspended = NO;
/* Optionally specify an alternative default environment for launched
* processes. If this is not set then the environment in which the
* Command server was launched is used.
* SetE = {
* };
*/
/* Optionally specify additions to the default environment for launched
* processes. This is typically used to modify the information that
* comes from the environment the Command server was launched in.
* AddE = {
* };
*/
/* Configure all tasks to be run under valgrind specifying the path
* to the process, which may be overridden on a per-process basis
* in the Launch config. Setting ValgrindPath to an empty string
* in the launch config ensures that the process is NOT launched
* under valgrind.
* ValgrindArgs = (...);
* ValgrindPath = "...";
*/
};
};
/* Section specific for the Control server itself.
*/
"" = {
};
}