pptp進程管理問題
我正在做一個對pptp運行管理的程序。
用execl 函數調用pptp-1.7.2 不知道要傳哪些參數進去。請那位高手告訴我。
持續等待中。
程序的流程大致為:
typedef struct process_tag
{
pid_t pid;
char state; //enable or disable
struct xmlnode * pptp_parameter; //運行pptp的參數;
char name; // 用戶操作的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
《解決方案》
pptp-1.7.2.tar.gz 下載地址為:
http://sourceforge.net/project/showfiles.php?group_id=33063
《解決方案》
回復 #1 jieikei11 的帖子
似乎應用表述的不是很明晰
《解決方案》
謝謝回復,我就是想問你們。我用execl()函數調用 pptp-1.7.2程序時,execl這個函數的參數包含那些內容。因為 pptp-1.7.2配置文件的內容全是英文,我看不明白。
《解決方案》
(3)通過檢查每個process_tag 節點的state成員是否為「enable」, 如果為"enable" 則創建一個進程,啟用一個pptp進程。