全部博文(467)
分类: LINUX
2008-04-20 14:14:08
下载地址 (HTTP): |
其他下载地址: |
daemontools 软件包是inetd和winetd的代替品。这里用它的主要理由是:他被 qmail 和 djbdns 推荐使用。
用下面的命令安装daemontools:
cd admin/daemontools-0.76 && |
安 装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~ |
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \ |
在这里,svscanboot 脚本中的好几个路径被改变了。按照我们的安装,svscan 在运行前将检查 /etc/service 目录而不是 /service 目录,才启动守护进程。
cp * /usr/sbin: 我们必须手工拷贝二进制文件到/usr/sbin目录。
cat /etc/inittab boot.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, softlimit和 setlock. 更多的详细描述,请参考.
svscanboot 是一个普通的脚本, 用来运行svscan,把输出定向到readproctitle。
svscan 检查服务目录,为每一个找到的脚本开始管理进程。
supervise运行 svscan给它的运行脚本,监听脚本开始的进程,当进程死亡的时候,使之重新运行。
svc 发送信号到在supervise下运行的进程。
svok 检查目录中运行的 supervise 。
svstat显示supervise监听到的进程的状态。
fghack 防止进程把自己放到后台运行。
pgrphack 在单独的进程组里开启一个进程。
readproctitle 显示ps输出的log文件。
multilog 是登陆程序。它从daemon获得输出,添加到log文档里。
tai64n 是一个timestamp生成程序。
tai64nlocal 改变 tai64n 输出文件到可读的格式。
setuidgid 在指定的帐号下运行一个特定的程序。
envuidgid 完成setuidgid程序的功能,但是设置环境变量$UID 和 $GID 帐号提供的UID和GID
envdir 在目录里运行利用环境变量提供的程序。
softlimit 对指定程序允许资源限制。
setlock 锁住可执行程序的文件。