Distccd手册页 译者:不开花 目录 * 名字 * 摘要 * 描述 * 独立的服务端 * 从INIT运行 * 从INETD运行 * 终止DISTCCD * 选项 * 搜索路径 * 诊断 * 环境变量 * 参考资料 * BUGS * 许可证 * 作者 名字 distccd - 分布式C/C++编译器服务端 摘要 distccd --daemon [OPTIONS] 描述 distccd 是分布式编译器distcc(1)的服务端。它从网络客户端接受任务并为之编译。 distcc可通过TCP或是ssh(1)。使用TCP连接很快但相对不安全。SSH连接安全但要慢。 对于SSH连接, 必须在帮忙的机器上安装不能以守护程序运行的distccd --因为需要通过SSH启动。 SSH连接有若干益处:客户端和服务端都不需要侦听任何新的端口; 编译工作由所请求的用户的权限; 未认证的用户无法访问服务端; 源码和目标文件在通信过程中是手保护的。 对于TCP连接, distccd可以以inetd风格的程序运行,或是作为独立的服务端。推荐独立模式,因为这样的效率稍高一些并且允许distccd调整接收的编译任务。 --listen和--allow选项可用于简单的基于IP的访问控制。 distcc由root或是别的用户启动。如果由root运行,它会让出特权,并切换到--user选项指定的用户,或是称为"distcc"的用户,或是"nobody"。 distccd没有配置文件; 它的行为只由命令行选项和客户端的请求控制。 独立服务端 推荐的distccd运行模式是作为独立服务端。 distccd侦听网络连接并fork若干进程来为请求服务。 如果你使用的distcc是(你的操作系统开发者)打包好的版本,你可以你操作系统哦个标准启动过程来启动distcc,例如 # service distcc start 为了以独立服务端启动distccd,以root或是别的用户运行: # distccd --daemon 从INIT运行 distccd可以在别的init(8)或是守护程序工具下以一个独立的守护程序运行。distccd会在系统启动时运行,并常驻系统。 distccd由超级服务程序在开机时以独立服务端启动,除此之外也要使用--no-detach选项以超级服务程序可以监管它。 例如,为了添加distccd作为sysvinit的一个进程,添加这一行到/etc/inittab dscc:2345:respawn:/usr/local/bin/distccd --verbose --no-detach --daemon 从INETD启动 distccd可由网络超级服务程序启动,例如inetd或xinetd。在这种情况下inetd侦听网络连接并在有任务到达时调用distccd。 这样的效率比以独立守护程序运行时的效率稍低。 distccd不能调整接收的并发任务,但是在你inetd配置里也许有选项来做这个。 对于传统的Unix inetd, 可添加这样的一行到/etc/inetd.conf: distcc stream tcp nowait.6000 root /usr/local/bin/distccd distccd --inetd inetd强制限定一个服务的连接率来防范处理意外和故意滥用。 Linux NetKit inetd默认的是每分钟40次,这对于distccd来说太低了。 .6000选项增加这个限制到每分钟6000次。 终止DISTCCD 若要终止独立的服务端,发送一个SIGTERM信号到父进程。从脚本来做这件事最可靠的方式是使用--pid-file选项来记录其进程ID。以这种方式结束服务端可确保正在进行的任务可完成。 选项 --help 显示使用信息概要。 --version 显示程序版本并退出。 -j, --jobs JOBS 限定可接收的任务数目。默认设置为大于机器上CPU数目的两倍, 考虑到一些等待网络IO而闭塞的进程。 (近守护程序模式) -N, --nice NICENESS 提高放弃CPU给别的任务的守护程序的优先级。NICENESS 是个用于当前进程优先级的增量。 优先级范围依赖于操作系统但通常是0 to 20。默认是每次加5。 -p, --port PORT 设置要侦听的TCP端口, 而不是默认的3632。(仅守护程序模式) --listen ADDRESS 指示distccd守护程序侦听IP地址ADDRESS。可用于双端主机上的访问控制。(仅守护程序模式) -P, --pid-file FILE 保存守护进程id到文件FILE。 (仅守护程序模式) --user USER 如果distccd由root执行,切换到用户USER。 -a, --allow IPADDR[/MASK] 指示distccd接受来自IPADDR的ip地址的连接。 A CIDR mask length can be supplied optionally after a trailing slash, e.g. 192.168.0.0/24, in which case addresses that match in the most significant MASK bits will be allowed. If no --allow options are specified, all clients are allowed. Unauthorized connections are rejected by closing the TCP connection immediately. A warning is logged on the server but nothing is sent ot the client. --no-detach 不从启动守护程序的shell分离。 --no-fork 对于每个连接不fork孩子,为了挂接gdb。如果不明了这个选项,请不要使用。 --log-file FILE 发送消息到FILE而不是syslog。记录到文件比通过syslog要快,也推荐这么做。 --log-level LEVEL 最小化包含进日志文件里的错误信心。 如果你只想查看错误信息而不是所有的连接的话,这是有用的。 LEVEL可是标准syslog级别中的任何一个,具体是critical, error, warning, notice, info, 或debug. --log-stderr 发送消息到标准错误,而不是文件或syslog。这主要用于调试。不要在inetd模式用。 --verbose 在日志里包含调试信息。等同于 --log-level=debug --wizard 打开适用于在gdb下启动distcccd的所有选项:以守护程序运行, 详细的日志信息到标准错误, 不分离和fork。只用于wizards。 --inetd 提交客户端连接到标准输入/标准输出。正如名字所指出,这个选项仅在由像inetd这样的超级服务程序启动时使用。 当标准输入是套接字时,distccd假定inetd模式 。 --daemon 在套接字上帮定和侦听,而不是从inetd运行。这用于独立模式。如果标准输入是tty,distccd假定守护程序模式,所以 --守护程序在从脚本或非交互的ssh连接启动需要明确的指定。 |