| Latest Release | Linux / EPICS Build / MacOS | Cygwin@Windows |
| :---------------------------------------: | :------------------------------------------: | :----------------------------------------------: |
| [![Version][badge.version]][link.version] | [![Travis Build][badge.travis]][link.travis] | [![Cygwin Build][badge.appveyor]][link.appveyor] |
# procServ
A wrapper to start arbitrary interactive commands in the background,
with telnet access to stdin/stdout.
On systems that use systemd, the procServUtils set of helper/convenience
scripts can be used to manage procServ instances using per-instance
systemd unit files.
## Dependencies
- Posix compliant OS with a C++ compiler
<br/>
Known to work on Linux, Solaris, MacOS, Cygwin.
- [**asciidoc**](http://www.methods.co.nz/asciidoc/)
(package: asciidoc), to create documentation in different formats
(man, pdf, html)
<br/>
Note: The distribution tar contains the doc in all available formats,
so you don't need asciidoc to make and install procServ.
- [**libtelnet**](https://github.com/seanmiddleditch/libtelnet)
(package: libtelnet)
<br/>
Note: The procServ distribution tar contains the libtelnet sources.
It will be compiled into procServ automatically, if the library
is not found on the system.
- Suggested: **telnet** and/or **socat** as clients to attach to
procServ instances.
The former is used to connect using TCP ports, the latter when using
domain sockets.
- For the procServUtils scripts on systems with systemd:
* **Python** (2.7 and up) with distutils
* **telnet** and/or **socat** for the attach command (see above)
## Building procServ
### Using autotools
1. Unpack the procServ distribution tar.
2. Perform a regular autotools build:
```
$ ./configure
$ make
```
Configure `--with-systemd-utils` to include the procServUtils
scripts in the build.
### Using the EPICS Build System
1. Unpack the procServ distribution tar into an appropriate place
within your EPICS application structure.
2. Inside that directory, run `./configure --with-epics-top=TOP`
where TOP is the relative path to the EPICS TOP directory.
<br/>
(For a structure created with epicsMakeBaseExt.pl, the appropriate
place for the procServ subdir would be under `TOP/src`,
with `../..` being the relative path to specify to configure -
which is the default.)
3. Build your EPICS structure.
### From the procServ Source Repository
Requires autoconf >=2.61, automake >= 1.10
<br/>
Optional asciidoc >= 8.4, FOP >= 0.95, xsltproc >= 1.1.24
```
$ git clone https://github.com/ralphlange/procServ.git
$ cd procserv
$ make
$ ./configure --enable-doc
$ make
```
Configure `--with-systemd-utils` to include the procServUtils
scripts in the build.
Note: When building from the repository, you must explicitly
use `--enable-doc` or `--disable-doc`. Omitting this
option assumes the distribution behaviour:
the documentation should be installed, but doesn't
need to be generated.
### Building on Cygwin/Windows
In general,
```sh
sh configure
make
```
should be enough. If you have `autoconf` and `automake` packages,
then for a really clean build type
```sh
sh autoreconf -fi
sh configure
make clean
make
```
If you plan to connect to procServ from a non-localhost address,
you will need to use
```sh
sh configure --enable-access-from-anywhere
```
as the configure step.
The executable is also available for download on GitHub/SourceForge.
## Repository, CI, Distribution and Packaging Ecosystem
### Sources
The procServ upstream repository is on
[GitHub](https://github.com/ralphlange/procServ).
### Continuous Integration
Automated builds are provided by
[Travis](https://travis-ci.org/ralphlange/procServ) (for Linux and MacOS) and
[AppVeyor](https://ci.appveyor.com/project/ralphlange/procserv) (Cygwin).
### Source Distribution Tars
These specifically created tars are different from a check-out
of the upstream sources. They are available through
[GitHub releases](https://github.com/ralphlange/procServ/releases) or on
[SourceForge](http://sourceforge.net/projects/procserv/).
### Linux System Packages
procServ is part of official Linux distributions:
- Debian/Ubuntu: `apt-get install procserv`
- Fedora/RHEL: `yum install procServ`
The [source repository](https://github.com/ralphlange/procServ) also contains
the packaging extras. These are usually from the last release and not part of
the distribution tar.
## Using procServ
### Running Applications (e.g. EPICS IOCs) as Services on Unix/Linux
Michael Davidsaver has contributed procServUtils, a set of utility scripts
for managing procServ-run system service instances under systemd.
These scripts generate the systemd unit files as well as configuration
snippets for the [conserver](https://www.conserver.com/) tool.
`manage-procs` is the script to add and remove procServ instances to
the systemd configuration, create conserver configuration snippets,
start and stop configured procServ instances,
generate lists of the instances known on the current host
and report their status.
For more details, check the manpage and use the script's `-h` option.
For older systems using SysV-style rc scripts, you can look at the
[Debian packaging](http://epics.nsls2.bnl.gov/debian/) or
at the [upstream repository](https://github.com/epicsdeb/sysv-rc-softioc)
of the predecessor package of these utilities.
### Using procServ on Cygwin/Windows
In the `.bat` file to launch procServ you should add
```bat
set CYGWIN=nodosfilewarning
```
to suppress warnings about using windows style paths.
If you plan to control procServ from a non-localhost address,
you will need to run it with `--allow` to allow remote access
to the child console.
The default build on Cygwin uses static linking.
I.e. to run on a non-Cygwin Windows system, procServ only needs `Cygwin1.dll`,
e.g. in the same directory as the executable.
Using Windows style paths ('`\`' delimiter) in arguments to procServ
is usually OK and suggested under `command.com`.
If you have problems try replacing them with Cygwin syntax,
i.e. "`/cygdrive/c/my/path`" rather than "`C:\my\path`".
Under `command.com`, the caret sign '`^`' has to be escaped using '`^^`'.
If you wish to run a `.bat` file rather than an executable as child under
procServ, you should use something along the lines of
```bat
%ComSpec% /c runIOC.bat st.cmd
```
as arguments to procServ to launch your `.bat` file.
## Enjoy!
<!-- Links -->
[badge.version]: https://badge.fury.io/gh/ralphlange%2FprocServ.svg
[link.version]: http://semver.org
[badge.travis]: https://travis-ci.org/ralphlange/procServ.svg?branch=master
[link.travis]: https://travis-ci.org/ralphlange/procServ
[badge.appveyor]: https://ci.appveyor.com/api/projects/status/h59hhep87tqn204u?svg=true
[link.appveyor]: https://ci.appveyor.com/project/ralphlange/procserv
没有合适的资源?快使用搜索试试~ 我知道了~
procServ Process Server-开源
需积分: 26 2 下载量 162 浏览量
2021-06-28
09:50:50
上传
评论
收藏 389KB GZ 举报
温馨提示
共51个文件
py:11个
cc:5个
h:3个
procServ 是一个包装器,它在后台将任意命令(例如 EPICS 软 IOC)作为子进程启动,将其标准输入和输出连接到 UNIX 域套接字或 TCP 端口以进行 telnet 访问。 它支持日志记录、子重启(手动或自动)、...
资源推荐
资源详情
资源评论
收起资源包目录
procServ-2.8.0.tar.gz (51个子文件)
procServ-2.8.0
Makefile.Epics.in 826B
procServ.h 4KB
processFactory.cc 10KB
procServ.cc 31KB
libtelnet.h 21KB
aclocal.m4 50KB
Makefile.am 2KB
processClass.h 1KB
manage-procs.1 6KB
acceptFactory.cc 10KB
procServ.txt 13KB
manage-procs 83B
forkpty.c 1KB
build-aux
depcomp 23KB
compile 7KB
config.guess 43KB
config.sub 35KB
missing 7KB
install-sh 15KB
procServ-launcher 83B
systemd-procserv-generator-system 113B
Makefile.in 35KB
INSTALL 9KB
procServ.html 24KB
connectionItem.cc 718B
manage-procs.html 12KB
AUTHORS 54B
configure 226KB
setup.py 1KB
clientFactory.cc 10KB
procServ.pdf 104KB
systemd-procserv-generator-user 112B
procServUtils
conf.py 2KB
test
__init__.py 786B
test_manage.py 2KB
test_generator.py 1KB
generator.py 2KB
attach.py 1KB
shlex.py 11KB
launch.py 2KB
__init__.py 0B
manage.py 10KB
NEWS 39B
ChangeLog 7KB
README.md 7KB
libtelnet.c 43KB
manage-procs.pdf 82KB
COPYING 34KB
configure.ac 6KB
procServ.1 15KB
conserver.cf.example 202B
共 51 条
- 1
资源评论
Jeckaijew
- 粉丝: 25
- 资源: 4533
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功