引用:
最初由 dou0228 發表 ps 在 Linux/FreeBSD 命令還算有相關性, 如果到了 Solaris 可就( 沒記錯的話是 ps -ef )
我的建議是根本不要用 ps 去判斷, 因為有 portable 問題
解法則是:
1. 不要用 Script 啦, 用 C 寫, 以 EXEC(3) 那類的執行, 自然可以控制 pppd, 但是要小心使用 EXEC(3) 那類的函式, 否則會有安全性問題
2. 以 pppd 的 pidfile 來做不就得了, 這樣解起來就容易的多
pppd 有一個選項: linkname <name>
因此, pppd 會建立 /var/run/ppp-<name>.pid 或是 /etc/ppp/ppp-<name>.pid
如此, 該檔案內容自然就是 pid 囉
而且這樣可以同時跑兩個 pppd 也不須要 killall 砍掉其它的 pppd |
ccc ... 我承認我的 script 現在只適合 FreeBSD Only ... 因為我真的沒 Linux 的環境可以測試,也懶的測
我是認為這種東西用 C 寫就太累了 .... 偵測 process 這種事情並沒有啥 performance 方面的問題,至於 /var/run/xxx.pid 的機制也不是每種 Unix 都會乖乖的產生
所以我還是喜歡 perl or php 寫出來的版本,比較好散布 ...
在處理 PID 的部份,的確有更精準的方式 ...但是 ... 目前來看應該夠準了啦 ... 如果這是用於企業重要的 ADSL ... 自然還有很多方法可以寫的超嚴謹
至於您提到的同時 Run 兩個 ppp 的問題,我的確沒考慮過 ...不過一般人應該比較少用到 ...
這是我的看法 ... 很高興跟您討論
可以 PM 我斯小討論技巧,交換心得
