接觸qnx兩天,拿到手上的板子bsp軟體已經被定製過,將啟動指令碼的位置和檔案系統做了大量更改
如下是幾個命令來處理退出和恢復過程
由於tinyrpc介面不提供退出介面,商務又不允許改介面,就採用低階的風險的退出方式exit(),遠端服務端使用了ip,port**等鬼東西,socket埠訪問總是無法訪問,於是用ping來查詢遠端機器是否啟動來代替查詢遠端tinyrpc伺服器是否執行,但exit退出方法會引起記憶體洩漏,從**端檢測到連線斷開退出程序的寫法
void t_resume()
// }
// // exit(1);
file * fp;
char buffer[20];
char cmp[20];
while(1) }
}
在啟動指令碼了做個檢測,發現遠端伺服器連線上之後再發起tinyrpc客戶端的連線,想用telnet來過濾,命令沒有,ssh命令沒有,好在加命令相對簡單,但加上去之後發現telnet和socket一樣無法訪問遠端埠,很多linux上穩定執行的工具都沒法使用,最後只能採用極端的方法了,在qnx啟動指令碼裡執行乙個後台shell指令碼來監控遠端伺服器,一旦起來就執行tinyrpc
#!/bin/sh
# import environment
basepath=$(cd `dirname $0`; pwd -p)
. $basepath/env_setup.sh
while true
do sleep 3
result=$(echo `ps -e -o pid,comm | grep "tinyrpc_service" | grep -v pid | grep -v grep`)
# echo $result
if [[ "$result" != "" ]]
then
# echo "tinyrpc runing"
sleep 1
else
result=$(echo $(echo `ping -c 1 10.255.255.100`) | grep "time=")
if [ "$" != "" ]
then
echo "tinyrpc resume"
tinyrpc_service &
fifidone
現有的指令得到兩列結果(602151 vcapture-test)
如果想得到單獨的pid號,可以在加awk指令過濾(602151)
echo `ps -e -o pid,comm | grep "vcapture-test" | grep -v pid | grep -v grep | awk ''`
其他:
在qnx檔案系統裡加命令方法,在src\hardware\startup\boards\dra72x\evm\build目錄下general commands段中加入需要的命令
telnet訪問埠指令碼如下,linux上很好用,但qnx用起來有點莫名其妙,感覺不是每次返回都是確定了
#!/bin/sh
num=`echo -n "\n"|telnet 127.0.0.1 32769|grep connected|wc -l`
if [ $num -eq 1 ]; then
echo "network is open."
else
echo "network is closed."
fi
socket埠在linux上預設開啟方式為非阻塞的,但在qnx的預設開啟方式為阻塞的,解決方法為設定非阻塞標誌位
int sockfd;
sockfd = socket(af_inet, sock_stream, 0);
flags = fcntl(sockfd, f_getfl, 0);
fcntl(sockfd, f_setfl, flags | o_nonblock);
除腳部老繭死皮妙方
取艾葉500克 7元 500克 紅花100克 7元 50克 平均分為20份,每日1份 加食醋100克,花椒20粒,食鹽2勺 用紗布包裹加水煮開 用水量為漫到腳踝處即可,趁熱泡腳,以15 30分鐘為限。本方既可以去除腳上的壞死老皮 老繭 凍瘡 裂口 灰指甲 腳癬以及多年不癒的雞眼等,還能使你的腳光滑細...
Oracle中編譯package掛死的原因
1.package在編譯的時候,用到了某些物件,而這個物件恰好被鎖住了,也就是說編譯執行緒發生了死鎖現象,程式掛死也就很正常了。2.package中寫了某些奇怪的語句,oracle的編譯器出問題了。第二種原因聽起來很不可思議,但是我之前確實遇到過。首先,轉乙個檢查oracle資料庫中物件死鎖及解決辦...
fprintf函式導致程序掛死問題分析
今天tuxedo的某個服務一呼叫就掛死,不報錯,沒coredump,經過打日誌定位,有問題的 是這一行 fprintf m fp,s s strtime.c str strfmt.c str m fp是file 後面兩個變數都是string,並且都能列印出來,沒有問題。dayong一口咬定就是fop...