Գրեթե մեկ տարի ես աշխատել եմ, իմ democheto НУКИ. Այսօր ես ժամանակ, որպեսզի ամեն ինչ, քանի որ կային բազմաթիվ բաներ, որոնք շատ լավ. Ես ավելացրել է մի քիչ նոր ֆունկցիոնալ. Пренаредих կոդ, ավելի շատ գործառույթներ, այնպես, որ այն նվազել է եւ վերանայման դարձել է ավելի հարմար օգտվողի համար.

Հիմնական նոր ֆունկցիոնալությունը, որը ես signal trap-իսկ. Ինչ-որ պահի, երբ դուք միացնել ընդունիչ dreambox սատանա որոշել է սպանել նրան, եւ դրանով դադարեցումը գործընթացի մոնիտորինգի ինձ, որ ինքնին բավական տհաճ պահին. Թե ինչպես է պարզել, թե ինչ է տեղի ունենում, քանի որ տեղ ամսագրերում-դա безбожно քիչ է, եւ դուք պետք է կատարել բարդ սխեմայի հետ, ցանցային ռեսուրսները, որոնց հետ իմ գործը չէ. "Մեծ է գծի signal ծուղակ-a ունի հաճելի գույքը բաշ սցենարներ կալանման համար ազդանշանին արդյունքները, կամ այնպիսիք, ներկայացված նրանց kernel-a միջոցով kill ասենք 😉 եւ, այսպիսով, մենք կարող ենք կանխել որոշ անմիջապես հաջորդող իրադարձությունները. Միայն ավելացնեմ որ SIGKIL կամ սպանությունը -9 չի կարող կանգնեցնել ու կանխել, այնպես որ, դիզայն core. Նա դադարեցնում է իր PID անմիջականորեն ներկայացված. Այժմ համապատասխան կոդը

#trapping signals I know -9 dosent work but we try it just in case ; )
trap on_exit 0 14 1 2 9 13 15 6 8 4 3 11 5
on_exit () {
make_debug 10 #unexpected error
#reboot now if we hawe trapped signal
reboot -d 0
exit 0
}

Մեր առաջին տողը հայտարարում է, թե ինչ գործողություններ է ձեռնարկել եւ ինչ ազդանշանները կարող են прихващаме ավելի ազդանշանների մարդ ազդանշանները 😉 Այս դեպքում, ինձ հետաքրքրում է. Ինչպես երեւում է, հանգեցնում է մի պարզ функциика որ ստիպում է կարգաբերում հաղորդագրություն եւ reboot ընդունիչ. Անկասկած ճաշ, ինչը կհանգեցնի արդյունքների, որոնք ես ակնկալում եմ, քանի որ ես կարծում եմ, որ կանխում է սպանության kill -9 բայց ոչինչ չի խանգարում է փորձել.

Այլ խոշոր փոփոխություններ գործառույթների, շատ բաներ, որոնք կրկնվում են կոդի նրանց наблъсках հատկապես, որ մի քիչ տհաճ դիտելու, ոչ թե, որ հիմա դե - 😉 Ես թեթև դրամ վերադառնալու բաշ-ա – ես դնում return նույն գործառույթները, եւ ակնկալում են, վարքագծի, ինչպես եւ բոլոր այլ հայտնի ինձ ծրագրավորման լեզուներ, սակայն պարզվել է, որ return վերադարձնում է միայն ամբողջ արժեքներ, եւ դա առավելագույնը 2 😀 իսկ ես ուզում եմ, որ ինձ վերադարձնել string. Գոյություն տգեղ svinshtina. Լուծումը շատ պարզ է

#---cuted---

if [ $T -eq $N ]
 then
 echo "Cam is down! Reboot..."
make_debug 4 # cam is down
 else
echo $rcam
 fi

# ---cuted----

#finding real cam1
 rcam1=$(find_cam $cam1)

Առաջին մասը սա վերջը իմ գործառույթները և выплюнуть էխո արդյունքները. Հաշվի առնելով այն խառնաշփոթ վերջին տողերը վերը նշված հատվածի.

Ես կարծում եմ um, որ դա հետաքրքիր մի կտոր կոդը.

Ուզում եմ շնորհակալություն հայտնել ոգեշնչման 😉

http://www.youtube.com/watch?v=SilMJ0O13UI&feature=related