3
.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
5
.\" Manual: procServ Manual
6
.\" Source: procServ 2.5.0
8
.TH "PROCSERV" "1" "12/02/2009" "procServ 2\&.5\&.0" "procServ Manual"
9
.\" disable hyphenation
11
.\" disable justification (adjust text to left margin only)
14
procServ \- Process Server with Telnet Console and Log Access
16
\fBprocServ\fR [\fIOPTIONS\fR] \fIport\fR \fIcommand\fR \fIargs\&...\fR
19
procServ(1) creates a run time environment for a command (e\&.g\&. a soft IOC)\&. It forks a server run as a daemon into the background, which creates a child process running \fIcommand\fR with all remaining \fIargs\fR from the command line\&. The server provides console access (stdin/stdout) to the child process by offering a telnet connection at the specified port\&. For security reasons, access is restricted to connections from localhost (127\&.0\&.0\&.1), so that logging into a valid account on the host machine is required\&.
21
procServ can be configured to write a console log of all in\- and output of the child process into a file using the \fB\-L\fR (\fB\-\-logfile\fR) option\&. To facilitate running under a central console access management (like conserver), the \fB\-l\fR (\fB\-\-logport\fR) option creates an additional telnet port, which is by default public (i\&.e\&. not restricted to localhost), and provides read\-only log access to the child\'s console\&. The \fB\-r\fR (\fB\-\-restrict\fR) option restricts the log port to localhost, similar to the access port\&.
23
Both access and log ports allow multiple connections, which are handled transparently: all input from access connections is forwarded to the child process, all output from the child is forwarded to all access and log connections (and written to the log file)\&. All diagnostic messages from the server process start with "@@@ " to be clearly distinguished from child process messages\&. A name specified by the \fB\-n\fR (\fB\-\-name\fR) option will replace the command string in many messages for increased readability\&.
25
The server will by default automatically respawn a child process when it dies\&. To avoid spinning, a minimum time between child process restarts is honoured (default: 15 seconds, can be changed using the \fB\-\-holdoff\fR option)\&. This behaviour can be toggled online using the toggle command ^T, the default may be changed using the \fB\-\-noautorestart\fR option\&. You can restart a running child manually by sending a signal to the child process using the kill command ^X\&. With the child process being shut down, the server accepts two commands: ^R to restart the child and ^Q to quit the server\&. The \fB\-w\fR (\fB\-\-wait\fR) option starts the server in this shut down mode, waiting for the telnet connection to issue a manual start command to create the child\&.
27
To block input characters that are potentially dangerous to the child (e\&.g\&. ^D and ^C on soft IOCs), the \fB\-i\fR (\fB\-\-ignore\fR) option can be used to specify characters that are silently ignored when coming from a console access port\&.
29
To facilitate being started and stopped as a standard system service, the \fB\-p\fR (\fB\-\-pidfile\fR) option tells the server to create a standard PID file containing the PID of the server process\&.
31
The \fB\-d\fR (\fB\-\-debug\fR) option runs the server in debug mode: the daemon process stays in the foreground, printing all regular log content plus additional debug messages to stdout\&.
37
Allow control connections from anywhere\&. (Default: restrict control access to localhost\&.) Creates a serious security hole, as telnet clients from anywhere can connect to the child\'s stdin/stdout and execute arbitrary commands on the host, if the child permits\&. Needs to be enabled at compile\-time (see Makefile)\&. Please do not enable and use this option unless you exactly know why and what you are doing\&.
40
\fB\-\-autorestartcmd\fR=\fIchar\fR
42
Toggle auto restart flag when
44
is sent on an access connection\&. Use
46
to specify a control character,
48
to disable\&. Default is
52
\fB\-\-coresize\fR=\fIsize\fR
56
of core file\&. See getrlimit(2) documentation for details\&. Setting
58
to 0 will keep child from creating core files\&.
61
\fB\-c, \-\-chdir\fR=\fIdir\fR
65
before starting child\&. This is done each time the child is started to make sure symbolic links are resolved on child restart\&.
70
Enter debug mode\&. Debug mode will keep the server process in the foreground and enables diagnostic messages that will be sent to the controlling terminal\&.
78
\fB\-\-holdoff\fR=\fIn\fR
82
seconds between child restart attempts\&. Default is 15 seconds\&.
85
\fB\-i, \-\-ignore\fR=\fIchars\fR
87
Ignore all characters in
89
on access connections\&. This can be used to shield the child process from input characters that are potentially dangerous, e\&.g\&.
93
characters that would shut down a soft IOC\&. Use
95
to specify control characters,
102
\fB\-k, \-\-killcmd\fR=\fIchar\fR
104
Kill the child process (child will be restarted automatically by default) when
106
is sent on an access connection\&. Use
108
to specify a control character,
110
for no kill command\&. Default is
114
\fB\-\-killsig\fR=\fIsignal\fR
118
when receiving the kill command\&. Default is 9 (SIGKILL)\&.
121
\fB\-l, \-\-logport\fR=\fIport\fR
123
Provide read\-only access to the child\'s console on
124
\fIport\fR\&. By default all hosts can connect to
127
(\fB\-\-restrict\fR) option to restrict access to localhost\&.
130
\fB\-L, \-\-logfile\fR=\fIfile\fR
132
Write a console log of all in\- and output to
136
\fB\-n, \-\-name\fR=\fItitle\fR
138
In all server messages, use
140
instead of the full command line to increase readability\&.
143
\fB\-\-noautorestart\fR
145
Do not automatically restart child process on exit\&.
148
\fB\-p, \-\-pidfile\fR=\fIfile\fR
150
Write the PID of the server process into
152
to facilitate integration into regular system service administration mechanisms\&.
155
\fB\-\-timefmt\fR=\fIfmt\fR
157
Set the format string used to print time stamps to
158
\fIfmt\fR\&. Default is "%c"\&. (See strftime(3) documentation for details\&.)
163
Do not write informational output (server)\&. Avoids cluttering the screen when run as part of a system script\&.
168
Restrict log connections to localhost\&.
171
\fB\-V, \-\-version\fR
173
Print program version\&.
178
Do not start the child\&. Instead, wait for a telnet connection and a manual start command\&.
181
To start a soft IOC using procServ, change the directory into the IOC\'s boot directory\&. A typical command line would be
186
procServ \-n "My SoftIOC" \-i ^D^C 20000 \&./st\&.cmd
189
To connect to the IOC, log into the soft IOC\'s host and connect to port 20000 using
194
telnet localhost 20000
197
To connect from a remote machine, ssh to a user account on procservhost and connect to port 20000 using
202
ssh \-t user@procservhost telnet localhost 20000
205
You will be connected to the soft IOCs console and receive an informative welcome message\&. All output from the procServ server will start with "@@@ " to allow telling it apart from messages that your IOC sends\&.
210
> telnet localhost 20000
211
Trying 127\&.0\&.0\&.1\&.\&.\&.
212
Connected to localhost\&.
213
Escape character is \'^]\'\&.
214
@@@ Welcome to the procServ process server (procServ Version 2\&.1\&.0)
215
@@@ Use ^X to kill the child, auto restart is ON, use ^T to toggle auto restart
216
@@@ procServ server PID: 21413
217
@@@ Startup directory: /projects/ctl/lange/epics/ioc/test314/iocBoot/iocexample
218
@@@ Child "My SoftIOC" started as: \&./st\&.cmd
219
@@@ Child "My SoftIOC" PID: 21414
220
@@@ procServ server started at: Fri Apr 25 16:43:00 2008
221
@@@ Child "My SoftIOC" started at: Fri Apr 25 16:43:00 2008
222
@@@ 0 user(s) and 0 logger(s) connected (plus you)
225
Type the kill command character ^X to reboot the soft IOC and get server messages about this action\&.
227
Type the telnet escape character ^] to get back to a telnet prompt and quit to exit telnet (and ssh when you were connecting remotely)\&.
229
While procServ was originally intended to be an environment to run soft IOCs, any process might be started as child\&. It provides an environment for any program that requires access to its console and should be run in the background as a daemon\&. By writing a file log directly or through a console access and logging facility (such as conserver), the log of such a program\'s output can be used to correlate its messages to other events\&. E\&.g\&., in an EPICS environment, running casw (the beacon anomaly watcher) can provide useful log output to analyse and track down network issues (name resolution broadcast storms)\&.
231
.SH "ENVIRONMENT VARIABLES"
235
This sets the file name to write the PID of the server process into\&. (See
242
If set, procServ starts in debug mode\&. (See
250
Report bugs on the procServ Trac at http://sourceforge\&.net/apps/trac/procserv/ or to the authors\&.
253
Written by David H\&. Thompson <thompsondh@ornl\&.gov> and Ralph Lange <Ralph\&.Lange@bessy\&.de>\&.
256
SourceForge project: http://sourceforge\&.net/projects/procserv/
259
All copyrights reserved\&. Free use of this software is granted under the terms of the GNU General Public License (GPLv3)\&.
265
\%mailto:thompsondh@ornl.gov
270
\%mailto:Ralph.Lange@bessy.de