i have a pen是什么梗:How to install daemontools (svc) and introduction

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 00:10:57

How to install daemontools

Like any other piece of software (and information generally), daemontools comes with NO WARRANTY.

System requirements

daemontools works only under UNIX.

Installation

Create a /package directory:
     mkdir -p /package     chmod 1755 /package     cd /package
Download daemontools-0.76.tar.gz into /package. Unpack the daemontools package:
     gunzip daemontools-0.76.tar     tar -xpf daemontools-0.76.tar     rm -f daemontools-0.76.tar     cd admin/daemontools-0.76
Compile and set up the daemontools programs:
     package/install
On BSD systems, reboot to start svscan.

To report success:

     mail djb-sysdeps@cr.yp.to < /package/admin/daemontools/compile/sysdeps
原文link: http://cr.yp.to/daemontools/install.html 

daemontools-0.76

介绍Daemontools

下载地址 (HTTP):       http://cr.yp.to/daemontools/daemontools-0.76.tar.gz下载地址 (FTP):                版本:                          0.76包的大小:                      162 KB占用磁盘空间:                  1.8 MB
其他下载地址:daemontools errno patch

daemontools 软件包是inetd和winetd的代替品。这里用它的主要理由是:他被 qmail 和 djbdns 推荐使用。

安装 daemontools

用下面的命令安装daemontools:

cd admin/daemontools-0.76 && patch -Np1 -i ../../daemontools-0.76.errno.patch &&package/compile &&cd package && sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ && mv boot.inittab~ boot.inittab &&cd ../command &&sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||'     -e 's|command|usr/sbin|'     -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&mv svscanboot~ svscanboot &&chmod 555 svscanboot &&cp * /usr/sbin &&cd ../package && cat /etc/inittab boot.inittab > /etc/inittab~ && mv -f /etc/inittab~ /etc/inittab && mkdir /etc/service &&telinit Q

命令解释

安装Daniel J. Bernstein的软件包(除了 daemontools,还有 Qmail,djbdns 和 ucspi-tcp)时,首先要了解的事情是:如果他认为自己的观点是正确的,但标准和他的想法不同,他会完全漠视一切标准。在Bernstein的软件里,他把自己作为标准。

因此,需要在安装的时候做一些小小的改变,使它适应FHS(Filesystem Hierarchy Standard)标准。许多命令由此而改变。

cd admin/daemontools-0.76: 这个包在admin目录被解压,你会在它下面2层目录下找到实际的包。

package/compile: 这个命令编译源代码,把二进制文件放到命令目录里。

由于我们打算把二进制文件放到 /usr/sbin 而不是创建一个非标准的 /command 目录,必须改变几个路径:

sed 's|command|usr/sbin|' boot.inittab > boot.inittab~mv boot.inittab~ boot.inittab
在 boot.inittab 中, /command/svscanboot 被改成 /usr/sbin/svscanboot.

sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \    -e 's|command|usr/sbin|' \    -e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&

在这里,svscanboot 脚本中的好几个路径被改变了。按照我们的安装,svscan 在运行前将检查 /etc/service 目录而不是 /service 目录,才启动守护进程。

cp * /usr/sbin: 我们必须手工拷贝二进制文件到/usr/sbin目录。

cat /etc/inittab boot.inittab > /etc/inittab~mv -f /etc/inittab~ /etc/inittab

这些命令在/etc/inittab中添加一行,使init运行svscan程序。

mkdir /etc/service: 这个命令创建daemontools控制目录。此目录即便是空的也必须创建(为了使daemontools运行)。

telinit Q: T这个命令告诉init进程重新读取设置文件(inittab),使改变生效。这就启动了 svscanboot 脚本。

内容

daemontools 软件包包含 svscanboot, svscan, supervise, svc, svok, svstat, fghack, pgrphack, readproctitle, multilog, tai64n, tai64nlocal, setuidgid, envuidgid, envdir, softlimitsetlock. 更多的详细描述,请参考http://cr.yp.to/daemontools.html.

描述

svscanboot

svscanboot 是一个普通的脚本, 用来运行svscan,把输出定向到readproctitle。

svscan

svscan 检查服务目录,为每一个找到的脚本开始管理进程。

supervise

supervise运行 svscan给它的运行脚本,监听脚本开始的进程,当进程死亡的时候,使之重新运行。

svc

svc 发送信号到在supervise下运行的进程。

svok

svok 检查目录中运行的 supervise 。

svstat

svstat显示supervise监听到的进程的状态。

fghack

fghack 防止进程把自己放到后台运行。

pgrphack

pgrphack 在单独的进程组里开启一个进程。

readproctitle

readproctitle 显示ps输出的log文件。

multilog

multilog 是登陆程序。它从daemon获得输出,添加到log文档里。

tai64n

tai64n 是一个timestamp生成程序。

tai64nlocal

tai64nlocal 改变 tai64n 输出文件到可读的格式。

setuidgid

setuidgid 在指定的帐号下运行一个特定的程序。

envuidgid

envuidgid 完成setuidgid程序的功能,但是设置环境变量$UID 和 $GID 帐号提供的UID和GID

envdir

envdir 在目录里运行利用环境变量提供的程序。

softlimit

softlimit 对指定程序允许资源限制。

setlock

setlock 锁住可执行程序的文件。

原文link: http://lfs.linuxsir.org/htdocs/blfs/basicnet/daemontools.html