Распберри Пи је моћан СБЦ (рачунар са једном плочом) који можете користити за разне апликације и пројекте. Његова свестраност лежи у способности покретања свих врста програма, укључујући прилагођене скрипте, делом захваљујући Распберри Пи ОС-у и другим оперативним системима заснованим на Линук-у које покреће.
Покретање скрипте или програма на Распберри Пи је једноставно као проналазак на систему и његово извршавање. Али шта ако желите да аутоматизујете овај процес, можда зато што то захтева ваш пројекат или зато што желите да поједноставите свој ток посла?
Један од одговора на ово је учење како се користи системд.
Шта је Системд?
системд је скуп системских компоненти за конфигурацију услуге и понашање на модерним Линук системима. Поистовећује се са ПИД (идентификатор процеса) од 1, јер је то први поступак за покретање система приликом покретања система. Сврха система је да вам помогне у управљању и извршавању програма при покретању система. И то је оно што ћете искористити за покретање свог програма при покретању на Пи-у.
Као што је у почетку поменуто, постоји неколико метода за покретање програма при покретању на Линук системима, као што су рц.лоцал, црон и аутостарт. Међутим, системд се дешава са бољим решењем партије ако желите да покренете ГУИ (графички кориснички интерфејс) програме, аутоматизујте апликације које ће се покретати након започињања одређених системских процеса или изнова и изнова покрећите програме све док не закажете распоред Извођење радова.
Повезан: Како распоредити задатке у Линуку помоћу Црон и Цронтаб
Како користити системд за покретање програма при покретању
системд је мало компликованија метода покретања програма при покретању на Линук системима. Међутим, флексибилност распореда коју нуди у односу на друге методе - оне које смо горе поменули - у потпуности надмашује његову сложеност у сваком аспекту.
Метода системд користи јединствене датотеке, које су сличне .ини датотекама које садрже информације о кодирању о уређајима, услугама, утичницама, циљу покретања и другим битним системским компонентама.
Датотеке јединица су различитих врста. Дакле, на основу врсте ресурса коју желите да пријавите, морате сходно томе одабрати тип датотеке јединице. У сврху овог водича, држаћемо се датотека .сервице унит, које вам омогућавају да управљате покретачким понашањем програма и скрипти на систему.
Испод је анализа корака укључених у покретање скрипте / програма при покретању помоћу системд-а.
Креирање услуге
Да бисте подесили програм да се покреће приликом покретања, креирајте датотеку сервисне јединице која ће рећи системд-у који програм и када треба покренути. Ево како се то ради.
- У прозору ЦЛИ откуцајте судо нано /либ/системд/систем/дисплаи.сервице. Можете користити било које име за своју услугу све док се завршава наставком .сервице.
- У сервисну датотеку налепите следеће редове кода:
[Јединица]
Опис = ПиЦоунтер
После = нетворк.таргет
[Услуга]
ЕкецСтарт = / уср / бин / питхон3 /хоме/пи/ПиЦоунтер/дисплаи.пи
Рестарт = увек
Корисник = пи
[Инсталирај]
ВантедБи = вишекориснички.циљ
Све ваше уобичајене опције конфигурације спадају у Јединица и Инсталирај одељци, док опције конфигурације специфичне за услугу иду у одељку Услуга.
Неколико горе наведених парова директива-вредност које ћете можда требати изменити укључују:
и. После: Одређује када треба започети услугу. Постављајући га на мрежа.циљ осигурава да наведена вредност - у овом случају нетворк.таргет - почне пре почетка тренутне јединице. Међутим, то не усмерава однос зависности који ће услуга покретати; то је учињено кроз друге директиве попут Вантс, Рекуирес и ВантедБи.
Наравно, ову вредност можете променити у складу са захтевима вашег пројекта. На пример, ако желите да се ваш програм изврши након што се Распберри Пи повеже са мрежом, можете да користите нетворк-онлине.таргет вредност. Можете се позвати на Федорина документација о системд да бисте сазнали више о овим вредностима.
ии. ЕкецСтарт: Садржи апсолутну путању и име програма / скрипте које желите да извршите приликом покретања. Дакле, у зависности од тога шта желите да извршите, морате додати вредности за обе ове директиве.
иии. Корисник: Идентификује име вашег Распберри Пи. Ако сте променили име свог Пи-а, треба да ставите ту вредност за корисника.
ив. ВантедБи: То је најчешћи начин одређивања окидача за јединицу. Постављањем на вишекориснички.циљ, можете успоставити однос зависности који ће покретати програм када се системска контрола преда у вишекорисничку љуску.
Штавише, ово такође покреће ваш програм пре него што се покрене Пи-ов Кс-Виндовс систем, што значи да се ваш програм покреће и пре него што се пријавите у систем. У случају да желите да се скрипта покрене пре него што се пријавите на Распберри Пи, ово вам то омогућава.
Горњи редови кода раде за програме који нису ГУИ. Међутим, ако желите да покренете ГУИ програм користећи системд, у датотеку услуге додајте следећи код:
[Јединица]
Опис = ПиЦоунтер
После = нетворк.таргет
[Услуга]
Окружење = Приказ =: 0
Окружење = КСАУТХОРИТИ / хоме / пи / .Ксаутхорити
ЕкецСтарт = / уср / бин / питхон3 /хоме/пи/ПиЦоунтер/дисплаи.пи
Рестарт = увек
[Инсталирај]
ВантедБи = вишекориснички.циљ
У горе наведеном пару директива-вредност, све што треба да промените је вредност за ЕкецСтарт директива. Замените онај у блоку кода програмом који желите да покренете приликом покретања. Након што попуните датотеку услуге, притисните ЦТРЛ + О. да га сачува.
Тестирајте услугу
Када је услуга спремна, ручно проверите да ли ради. За ово у терминалу откуцајте следећу команду: судо системцтл старт дисплаи.сервице. Услуга треба успешно да извршава ваша упутства.
Једном кад престане, прекините га са судо системцтл стоп дисплаи.сервице.
Омогућите услугу
Ако сте успели да успешно покренете свој програм користећи услугу, време је да га омогућите тако да аутоматски извршава ваш програм сваки пут када покренете Распберри Пи.
Да бисте то урадили, откуцајте судо системцтл енабле дисплаи.сервице у прозору терминала. И кад је то готово, уђите судо ребоот да поново покренете свој Пи.
Након што се Распберри Пи покрене, системд би требао покренути ваш програм у складу са вашим упутствима.
Аутоматизовање покретања програма при покретању на Распберри Пи
Као и већина Линук система, Распберри Пи ОС такође вам омогућава да извршавате операције на неколико начина, а остаје веран и заказивању покретања програма. Дакле, ако желите да покренете ГУИ програме / скрипте при покретању и желите бољу контролу над својим распоређивањем, системд је очигледно бољи метод.
Међутим, ако желите једноставније решење или захтеви вашег пројекта захтевају одређено заказивање, можете погледати наш водич за Покретање програма или скрипте Распберри Пи при покретању да сазнате више.
Желите да добијете више од своје Распберри Пи? Ево гомиле корисних наредби за кретање кроз Пи терминал и програмирање његових ГПИО пинова.
Прочитајте следеће
- Уради сам
- Распберри Пи
Иасх је писац особља у МУО-у за „уради сам“, Линук, програмирање и сигурност. Пре него што је своју страст пронашао у писању, развијао се за веб и иОС. Такође можете пронаћи његово писање на ТецхПП-у, где покрива друге вертикале. Осим технологије, он ужива да разговара о астрономији, Формули 1 и сатовима.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!
Још један корак…!
Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.