关于pptp进程管理问题

李邓子 发布于 2009/05/16 23:04
阅读 576
收藏 1
我正在做一个对pptp运行管理的程序。
用execl 函数调用pptp-1.7.2 不知道要传哪些参数进去。请那位高手告诉我。
持续等待中。

程序的流程大致为:
typedef struct process_tag
{
pid_t pid;
char state[128]; //enable or disable
struct xmlnode * pptp_parameter;   //运行pptp的参数;
char name[256]; // 用户操作的pptp名字。
  strcut process_tag *next;
}process_tag;

伪代码为
int main()
{

  (1)用每个pptp运行参数初始化process_tag 节。
  (2)创建unix域。设置为不阻塞监听。
  (3)通过坚持每个process_tag 节点的state成员是否为“enable”, 如果为"enable" 则创建一个进程,启用一个pptp进程。
  do
  {
     ret = select(......); //等待 每隔5秒  
     if(ret =>0)
     {
         (4)得到用户输入命令内容,
               (4.1)判断用户输入的命令是否有效,及那种类型的命令。格式可以自己定,我在程序中定的格式为” c xxx 或 d xxx“ 。
               (4.2)判断要操作的对象的名称与process_tag 成员name值是否匹配。如果匹配,则:
                    (4.2.1)如果是命令1 (即: d xxx),检查xxx 对应的pid 是否大于0,如果大于零,则杀死这个进程,把state 的值设置为“disable” pid 的值为-1;            
                     (4.2.2)如果是命令2 (即: c xxx),检查xxx 对应的pid 是否大于0,如果小于零,创建一个进程。则启用这个进程,把state 的值设置为“enbble” pid 的值为 =getpid();
        (5)while((exitpid = waitpid(-1, &state, NOHONG)) >0)
            {
                exitpid 与每个节点中的pid 成员比较,判断哪个匹配,找到了就设置其对应的成员pid = -1; stage ="disable"
                打印退出状态。
            }
          (3)通过坚持每个process_tag 节点的state成员是否为“enable”, 如果为"enable" 则创建一个进程,启用一个pptp进程。
      }

   }while(1);

}

在启用每个pptp时,我是用execl函数去调用的,但现在不知到要传那些参数进行。请大家告诉我。先谢谢了。
持续等待中!!!!!!!!!!!!!!!!!!!!!!

或发邮件给我的邮箱harris11727@yahoo.com
加载中
返回顶部
顶部