QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 870|回复: 6

关于使用xinetd启动进程的问题

[复制链接]
发表于 2004-7-18 15:51:47 | 显示全部楼层 |阅读模式
我在构建一个简单的分布式系统
主进程可以在任何一个节点上启动,它向本网段(假设192.168.1.0/24)所有的机器发送广播数据包,即向192.168.1.255发送,来启动所有可以启动的从进程。
我写了这样一个xinetd配置文件。但试了试,从进程没能被启动,不知哪点没考虑周到。请大虾指教

[code:1]
service rcatd
{
        disable        = no
        port        = 5000
        socket_type = dgram
        protocol    = udp
        wait        = yes
        user        = andy
        only_from   = 192.168.1.0/24
        server      = /home/andy/cluster/bin/slave
}
[/code:1]

如何检查xinetd所监听的端口?我netstat -atn看不到5000端口。
 楼主| 发表于 2004-7-18 15:55:34 | 显示全部楼层
这里附加上主进程发送广播数据包的代码段,为简洁起见,部分变量声明在此简略
[code:1]
  unsigned char bcaddr[4] = {0xC0, 0xA8, 0x01, 0xFF}; /*192.168.1.255 */

  /*
   ** establish a UDP broadcast socket
   */
  b_fd = socket (AF_INET, SOCK_DGRAM, 0);
//  memset ((char *) &broadcast, 0, len);
  bzero(&broadcast, sizeof(broadcast));
  broadcast.sin_family = AF_INET;
  broadcast.sin_port = htons (BROADCAST);
//  memcpy(&broadcast.sin_addr, bcaddr, 4);
  broadcast.sin_addr.s_addr = inet_addr("224.0.0.1");
  setsockopt (b_fd, SOL_SOCKET, SO_BROADCAST, (char *) &opt, sizeof (opt));

   / *
   * start up all remote slave services
   */
  gethostname (hostname, sizeof (hostname));
  if ((p = strchr (hostname, '.')) != NULL)
    {
      *p = '\0';                /* trunc .domainname */
    }
  sendto (b_fd, hostname, strlen (hostname) + 1, 0,
          (struct sockaddr *) &broadcast, len);
  close (b_fd);
[/code:1]
回复

使用道具 举报

发表于 2004-7-18 23:45:03 | 显示全部楼层
如果只是主机器广播而从机器不监听的话又从何得知消息?
回复

使用道具 举报

 楼主| 发表于 2004-7-19 15:36:48 | 显示全部楼层
[quote:4b6f6d2dca="lanche"]如果只是主机器广播而从机器不监听的话又从何得知消息?[/quote]

前面那个xinted配置文件就是在各个从节点上的,它们监听主进程发送的UDP广播并自动启动从进程
回复

使用道具 举报

发表于 2004-7-19 15:58:19 | 显示全部楼层
好像要在 /etc/services 中添加   rcatd                   5000/udp     ?
回复

使用道具 举报

 楼主| 发表于 2004-7-22 15:06:22 | 显示全部楼层
[quote:f734e7f1b9="sagaeon"]好像要在 /etc/services 中添加   rcatd                   5000/udp     ?[/quote]

是的,我已经加入了,但仍然不能工作……
回复

使用道具 举报

 楼主| 发表于 2004-7-22 16:06:27 | 显示全部楼层
多谢各位耐心地帮我分析问题,现在问题已经解决了。
其实xinetd配置没有问题,只是我没有搞清楚广播地址。

无论如何,谢谢各位了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 21:03 , Processed in 0.041164 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表