[求助]关于Ham的简单使用

想让Ham帮我重启一个进程,但是使用过程中遇到些问题。

代码如下:
Ham代码

int main(int argc, char *argv[])
{
int status;
char *inetdpath;
ham_entity_t *ehdl;
ham_condition_t *chdl;
ham_action_t *ahdl;
int inetdpid;

if (argc > 1)
inetdpath = strdup(argv[1]);
else
inetdpath = strdup("/tmp/hamtest");

if (argc > 2)
inetdpid = atoi(argv[2]);
else
inetdpid = -1;

ham_connect(0);
ehdl = ham_attach(“hamtest”, ND_LOCAL_NODE, inetdpid, inetdpath, 0);

if (ehdl != NULL)
{
chdl = ham_condition(ehdl,CONDDEATH, “death”, HREARMAFTERRESTART);
if (chdl != NULL) {
ahdl = ham_action_restart(chdl, “restart”, inetdpath,
HREARMAFTERRESTART);
if (ahdl == NULL)
printf(“add action failed\n”);
}
else
printf(“add condition failed\n”);
}
else
printf(“add entity failed\n”);
ham_disconnect(0);
exit(0);
}

需要重启的进程代码:
int main(int argc, char *argv[]) {

procmgr_daemon( EXIT_SUCCESS, 0x000000FF );

sleep(1);
fprintf(stderr,“Welcome to the QNX Momentics IDE\n”);
sleep(1);

return 0;
}

我希望看到的是,进程2不断重启,输出fprintf。

但实际情况是,当我启动进程1后,可以看到进程2输出一次,并不重复输出
奇怪的事情在于,如果我 “slay syslogd”,或者一些别的进程,又可以看到进程2重启一次,输出fprintf,但并不重复输出

诸位老大,是我在进程2中少做了什么,还是这是个Ham的Bug?谢谢先