我们来给之前的 “骨架” 脚本加点 “血肉”,并让它更复杂更富有特性吧。 默认的方法已能够为我们做很好的工作了, 但是我们可能会需要它们一些方面的调整。 现在我们将学习如何调整默认方法来符合我们的需要。
附加给 注意:永远不要 在
| |
一个得体的守护进程会创建一个
pidfile 进程文件,
以使其进程能够更容易更可靠地被找到。如果设置了
注意:事实上,rc.subr(8)
在启动一个守护进程前还会使用 pidfile
进程文件来查看它是否已经在运行。使用了
| |
如果守护进程只有在确定的文件存在的情况下才可以运行,
那就将它们列到 注意:来自 rc.subr(8) 的默认方法,通过使用
| |
我们可以在守护进程有异常的时候,自定义发送给守护进程的信号。
特别是, 注意:信号名称应当以不包含 | |
在默认的方法前面或后面执行附加任务是很容易的。
对于我们脚本所支持的每条命令参数而言,我们可以定义
注意:如果我们需要的话,用自定义的
别忘了你可以将任意的有效的 sh(1) 表达式插入到方法和你定义的 pre- 与 post-commands 命令中。 在大部分情况下,调用函数使实际任务有好的风格, 但千万不要让风格限制了你对其幕后到底是怎么回事的思考。 | |
如果我们愿意实现一些自定义参数,
这些参数也可被认作为我们脚本的 命令,我们需要在
注意:
我们从 | |
我们的脚本提供了两个非标准的命令,
非标准命令在启动或停止的时候不被调用。 通常它们是为了系统管理员的方便。它们还能被其它的子系统所使用, 例如,devd(8),前提是 devd.conf(5) 中已经指定了。 全部可用命令的列表,当脚本不加参数地调用时,在 rc.subr(8) 打印出的使用方法中能够找到。例如, 这就是供学习的脚本用法的内容: # /etc/rc.d/mumbled
Usage: /etc/rc.d/mumbled [fast|force|one](start|stop|restart|rcvar|reload|plugh|xyzzy|status|poll) | |
如果脚本需要的话,它可以调用自己的标准或非标准的命令。
这可能看起来有点像函数的调用,但我们知道,命令和 shell
函数并非一直都是同样的东西。举个例子, | |
rc.subr(8) 提供了一个方便的函数叫做
切记对 sh(1) 而言零值意味着真而非零值意味着假。 重要:
下面是 if checkyesno mumbled_enable; then
foo
fi 相反地,以下面的方式调用 if checkyesno "${mumbled_enable}"; then
foo
fi | |
我们可以通过修改 | |
某种情况下我们可能需要发出一条重要的信息,那样的话
syslog 可以很好地记录日志。
这可以使用下列 rc.subr(8) 函数来轻松完成:
| |
方法的退出值和它们的 pre-commands 预命令不只是默认被忽略掉。如果
注意:然而,当给一个参数使用 |
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.