Namai / „Mozilla Firefox“ / „Ubuntu“ švaru nuo paleidimo. Kaip sukonfigūruoti automatinį programų ir paslaugų paleidimą Ubuntu.

„Ubuntu“ švaru nuo paleidimo. Kaip sukonfigūruoti automatinį programų ir paslaugų paleidimą Ubuntu.

Sukurkite tuščią failą.

Pirma eilutė, kurią rašome:

   #! / šiukšliadėžė / š

Ši eilutė nurodo, kurį komandos apvalkalą naudoti. Toliau savo komandas.

Išsaugokite jį originaliu pavadinimu (kad nesutampa su esamais) aplanke / usr / sbin /.

Jei norite, kad scenarijus būtų paleistas paleidžiant, prieš einant į eilutę 0 turite jį užregistruoti /etc/rc.local faile. Jei neturite šio failo, sukurkite jį ir įklijuokite į jį tokį turinį:

   #! / bin / sh -e # Čia įterpiame eilutę, nurodančią jūsų scenarijų. / usr / sbin / mescripts išėjimas 0

Šiek tiek sudėtingesnis būdas

Leidžia nustatyti įkrovos seką ir scenarijaus elgseną skirtingiems paleidimo lygiams.

Mes tiriame /etc/init.d/skeleton, jo pagrindu sukuriame scenarijų /etc/init.d/my_script, su kuriuo mūsų programa bus paleista / sustabdyta.

Šiuose kataloguose yra paslaugų sustabdymo scenarijai:

   /etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/

tai yra paslaugų paleidimo scenarijai:

   /etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/

Mes tiriame juos seka (kuo mažesnis pirmasis skaitmuo scenarijaus pradžioje, tuo anksčiau programa pradeda / sustabdo). Tai gali būti labai svarbu, jei jūsų programa priklauso nuo kai kurių paslaugų.

Kai jau nusprendžiame dėl paleidimo scenarijaus ir sekos, darome šiuos veiksmus:

Sudo atnaujinimas-rcd my_script pradžia 70 2 3 4 5. stotelė 20 0 1 6.

Čia aš nusprendžiau, kad mano scenarijus turėtų prasidėti vėliau nei likusieji (70), o anksti sustoti (20). Skaičiai 2 3 4 5 0 1 6 rodo apkrovos lygį.

Jei kas nors jums nepatinka, galite viską ištrinti.

Pašalinti atnaujinimą-rc.d-my_script pašalinti

Išsami informacija „man update-rc.d“.

Scenarijaus vykdymas įjungiant / išjungiant tinklą

Yra katalogas / etc / network / su pakatalogiais if-down.d, if-pre-up.d, if-post-down.d, if-up.d. Jei scenarijų įdėsite į vieną iš šių pakatalogių, jis bus atitinkamai vykdomas, kai jį išjungsite, prieš jį įjungdami, išjungdami arba įjungdami tinklą.

Kitas būdas yra nurodyti vieną iš šių direktyvų faile / etc / network / sąsajų: aukštyn, aukštyn, aukštyn, žemyn, prieš žemyn, po žemyn. Pavyzdžiui, linija

Paštu / kelias / į / scenarijus

įjungęs tinklą vykdys scenarijų scenarijus.sh. Daugiau informacijos galima rasti žmogaus sąsajose.

Bet kokiu atveju scenarijus turi turėti teises, leidžiančias vykdyti, kitaip jis negalės pradėti.

Spalvos jutiklis TCS3200 - parodytas paveikslėlyje - spalvai aptikti naudoja TAOS TCS3200 RGB jutiklio lustą. Jame taip pat yra keturi balti šviesos diodai, kurie apšviečia priešais esantį objektą.


  Specifikacija

Jutiklio specifikacija:

  • Maitinimo įtampa: nuo 2,7 V iki 5,5 V
  • Matmenys: 28,4 x 28,4 mm (1,12 x 1,12 ″)
  • Sąsaja: skaitmeninis, TTL signalas
  • Didelės skyros mažo intensyvumo spalvų derinimas
  • Programuojamos spalvos ir viso nuskaitymo išvesties dažnis
  • Prijungiamas tiesiogiai prie mikrovaldiklio

Kaip veikia TCS3200 spalvų jutiklis?

TCS3200 turi daugybę fotodiodų su 4 skirtingais filtrais. Fotodiodas yra tiesiog puslaidininkinis įtaisas, kuris šviesą paverčia srove. Jutiklis turi:

  • 16 fotodiodų su raudonu filtru - jautrūs raudonam bangos ilgiui
  • 16 fotodiodų su žaliu filtru - jautrūs žaliosios bangos ilgiui
  • 16 fotodiodų su mėlynu filtru - jautrūs mėlynos bangos ilgiui
  • 16 fotodiodų be filtro

Atidžiau pažvelgę \u200b\u200bį TCS3200 lustą, galite pamatyti skirtingus filtrus.


Pasirinkdami fotodiodo filtro rodmenis galite aptikti skirtingų spalvų ryškumą. Jutiklis turi srovės ir dažnio keitiklį, kuris konvertuoja fotodiodų rodmenis į kvadratinę bangą, kai dažnis yra proporcingas pasirinktos spalvos šviesos intensyvumui. Tada šį dažnį skaito Arduino - tai parodyta paveikslėlyje žemiau.


Jutiklis Pinout

LED filtro pasirinkimas

Norėdami pasirinkti spalvą, kurią nuskaito fotodiodas, naudokite valdymo kaiščius S2 ir S3. Kadangi fotodiodai yra sujungti lygiagrečiai, S2 ir S3 nustatydami LOW ir HIGH skirtingais deriniais, galite pasirinkti skirtingus fotodidus. Pažvelkite į žemiau pateiktą lentelę:

Dažnio skalė

Kontaktai S0 ir S1 naudojami išvesties dažnio skalės nustatymui. Jis gali būti keičiamas iki šių iš anksto nustatytų verčių: 100%, 20% arba 2%. Išėjimo dažnio mastelio keitimas yra naudingas, norint optimizuoti įvairių dažnių skaitiklių ar mikrovaldiklių jutiklių rodmenis. Pažvelkite į žemiau pateiktą lentelę:

Arduino tinka 20% dažnio skalė. Tiesiog nustatykite kaiščius S0 į HIGH ir S1 į žemus.

Spalvų jutiklis naudojant „Arduino“ ir TCSP3200

Šiame pavyzdyje spalvas aptiksite naudodamiesi „Arduino“ ir spalvų jutikliu TCSP3200. Šis jutiklis nėra labai tikslus, tačiau puikiai tinka aptikti spalvas paprastuose projektuose.

Būtini duomenys

Projektui reikalingų duomenų sąrašas:

  • spalvų jutikliai TCSP3200 arba TCS230
  • Arduino uno
  • jungiamieji laidai

Elektros schema

TCSP3200 jutiklį reikia lengvai prijungti prie „Arduino“ plokštės. Tiesiog atlikite šį modelį.



Ryšiai tarp TCSP3200 ir Arduino:

  • S0: skaitmeninis kontaktas 4
  • S1: skaitmeninis kaištis 5
  • Vcc: + 5 V
  • S3: skaitmeninis kaištis 6
  • S4: skaitmeninis kontaktas 7
  • OUT: skaitmeninis 8 kaištis

Programos kodas

Projektui reikalingi 2 eskizai:

  1. Išėjimo dažnio nuskaitymas ir rodymas serijiniame monitoriuje. Šioje dalyje turite užrašyti dažnio reikšmes, kai prieš jutiklį dedate skirtingas spalvas.
  2. Atskirkite skirtingas spalvas. Šioje skiltyje įvesite į kodą anksčiau pasirinktas dažnio reikšmes, kad jutiklis galėtų atskirti skirtingas spalvas. Aptiksime raudoną, žalią ir mėlyną spalvas.

1. Perskaitykite išvesties dažnį

Atsisiųskite šį kodą į „Arduino“ plokštę.

/ ********* Rui Santos išsami projekto informacija pateikiama http://randomnerdtutorials.com ********* / // TCS230 arba TCS3200 kaiščių laidai į Arduino #define S0 4 #define S1 5 #define S2 6 #define S3 7 #define sensorOut 8 // Parduotuvių dažnis, kurį nuskaito fotodiodai int redFrequency \u003d 0; int greenFrequency \u003d 0; int mėlynasis dažnis \u003d 0; void setup () (//) Išvesties „pinMode“ (S0, OUTPUT) nustatymas; „pinMode“ (S1, OUTPUT); „pinMode“ (S2, OUTPUT); „pinMode“ (S3, OUTPUT); // „sensorOut“ nustatymas kaip įvesties „pinMode“ („sensorOut“ INPUT); // Dažnio mastelio nustatymas į 20% „digitalWrite“ (S0, AUKŠTAS); „digitalWrite“ (S1, žemas); // prasideda serijinis ryšys „Serial.begin“ (9600);) void loop () (// Nustatant RED (R)) filtruoti fotodiodai, kuriuos reikia skaityti digitalWrite (S2, LOW); digitalWrite (S3, LOW); // išvesties dažnio skaitymas redFrequency \u003d pulseIn (sensorOut, LOW); // RED (R) vertės spausdinimas Serial.print ("R \u003d "); Serial.print (redFrequency); atidėjimas (100); // ŽALIO (G) filtruotų fotodiodų nustatymas skaitomiems digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // išvesties dažnio skaitymas greenFrequency \u003d pulseIn (sensorOut, LOW); // ŽALIOS (G) vertės spausdinimas Serial.print ("G \u003d"); Serial.print (greenFrequency); atidėjimas (100); // MĖLYNA (B) filtruotų fotodiodų nustatymas skaitomiems „digitalWrite“ (S2, LOW); digitalWrite (S3, HIGH); // Rea Ding išėjimo dažnis blueFrequency \u003d pulseIn (sensorOut, LOW); // MĖLYnos (B) vertės spausdinimas „Serial.print“ („B \u003d“); „Serial.println“ („blueFrequency“); vėlavimas (100); )

Atidarykite nuosekliojo prievado monitorių, uosto greitis 9600.

Padėkite mėlyną daiktą prieš jutiklį skirtingais atstumais. Turėtumėte išsaugoti du matavimus: kai objektas pastatytas toli nuo jutiklio ir kai objektas yra arti jo.


Patikrinkite vertes, rodomas serijiniame monitoriuje. Mėlynas dažnis (B) turėtų būti mažiausias, palyginti su raudono (R) ir žalio (G) dažnio rodmenimis - žr. Paveikslą žemiau.


Kai mes pastatome mėlyną objektą prieš jutiklį, mėlynojo dažnio (B) vertės svyruoja 59   ir 223 (žr. paryškintas vertybes).

Pastaba:  kode negalima naudoti šių dažnio verčių (59 ir 223), turėtumėte išmatuoti konkretaus objekto spalvas naudodamiesi savo spalvų jutikliu. Tada išsaugokite viršutinę ir apatinę mėlynos spalvos dažnio ribas, nes jums jų prireiks vėliau.

Pakartokite šį procesą su žaliais ir raudonais objektais ir užrašykite kiekvienos spalvos viršutinę ir apatinę dažnio ribas.


2. Atskirkite skirtingas spalvas

Šis kitas eskizas nusako dažnio reikšmes pagal RGB reikšmes (kurios yra nuo 0 iki 255).

Ankstesniame žingsnyje, kai turime maksimaliai mėlyną spalvą, gavome 59 dažnį, o kai mėlyna spalva yra didesniu atstumu, gavome 223.

Taigi, 59 dažnis atitinka 255 (RGB) ir 223 dažnį iki 0 (RGB). Tai padarysime su Arduino žemėlapis ()  funkcija. į žemėlapis ()  Funkcija, kurią jums reikia pakeisti XX parametrus savo vertėmis.

/ ********* Rui Santos Išsami projekto informacija pateikiama http://randomnerdtutorials.com ********* / // TCS230 arba TCS3200 kaiščių laidai į Arduino #define S0 4 #define S1 5 #define S2 6 #define S3 7 #define sensorOut 8 // Parduotuvių dažnis, kurį nuskaito fotodiodai int redFrequency \u003d 0; int greenFrequency \u003d 0; int mėlynasis dažnis \u003d 0; // Saugo raudonąją. žalia ir mėlyna spalvos int redColor \u003d 0; int greenColor \u003d 0; int mėlyna spalva \u003d 0; void setup () (//) Išvesties „pinMode“ (S0, OUTPUT) nustatymas; „pinMode“ (S1, OUTPUT); „pinMode“ (S2, OUTPUT); „pinMode“ (S3, OUTPUT); // „sensorOut“ nustatymas kaip įvesties „pinMode“ („sensorOut“ INPUT); // Dažnio mastelio nustatymas į 20% „digitalWrite“ (S0, AUKŠTAS); „digitalWrite“ (S1, žemas); // prasideda serijinis ryšys „Serial.begin“ (9600);) void loop () (// Nustatant RED (R)) filtruojami fotodiodai, kuriuos reikia skaityti digitalWrite (S2, LOW); digitalWrite (S3, LOW); // išvesties dažnio skaitymas redFrequency \u003d pulseIn (sensorOut, LOW); // RED (R) dažnio vertės pakeitimas nuo 0 iki 255 // Jūs turite pakeisti savo vertėmis. Štai pavyzdys: // redColor \u003d map (redFrequency, 70, 120, 255.0); redColor \u003d map (redFrequency, XX, XX, 255.0); // RAUDONOS (R) vertės spausdinimas „Serial.print“ („R \u003d“); Serial.print („redColor“); atidėjimas (100); // ŽALINIŲ (G) filtruotų fotodiodų nustatymas skaitomiems „digitalWrite“ (S2, HIGH); „digitalWrite“ ( S3, HIGH); // Išvesties dažnio skaitymas greenFrequency \u003d pulseIn (sensorOut , MAŽAI); // ŽALIO (G) dažnio reikšmės pakeitimas nuo 0 iki 255 // Jūs turite pakeisti savo vertėmis. Čia yra pavyzdys: // greenColor \u003d map (greenFrequency, 100, 199, 255, 0); greenColor \u003d map (greenFrequency, XX, XX, 255, 0); // ŽALIOS (G) vertės spausdinimas Serial.print ("G \u003d"); Serial.print (greenColor); atidėjimas (100); // MĖLYNA (B) filtruojamų fotodiodų nustatymas skaitomiems digitalWrite (S2, LOW); digitalWrite (S3, HIGH); // išvesties skaitymas dažnis „blueFrequency“ \u003d „pulseIn“ („sensorOut“, LOW); // MĖLYnos (B) dažnio reikšmės pakeitimas nuo 0 iki 255 // Turite pakeisti savo vertėmis. Štai pavyzdys: // blueColor \u003d map (blueFrequency, 38, 84, 255, 0); „blueColor“ \u003d žemėlapis („blueFrequency“, XX, XX, 255, 0); // MĖLYnos (B) vertės spausdinimas „Serial.print“ („B \u003d“); Serial.print („blueColor“); vėlavimas (100); // Tikrinamos esamos aptiktos spalvos ir išspausdinamas // pranešimas serijos monitoriuje, jei (redColor\u003e greenColor && redColor\u003e blueColor) (Serial.println ("- RED pastebėtas!");) If (greenColor\u003e redColor && greenColor\u003e blueColor) ) („Serial.println“ („- aptikta ŽALI! ");) if (blueColor\u003e redColor && blueColor\u003e greenColor) (Serial.println (" - Aptikta mėlyna! ")))

Norėdami atskirti skirtingas spalvas, turime tris sąlygas:

  • Kai R turi didžiausią reikšmę (RGB parametruose), tada objektas raudona spalva
  • Kai G turi didžiausią reikšmę, tada objektas žalia spalva
  • Kai B turi didžiausią reikšmę, tada objektas mėlyna spalva

Dabar padėkite ką nors prieš jutiklį. Serijiniame monitoriuje turėtų būti išspausdinta nustatyta spalva: raudona, žalia arba mėlyna.

Užuomina:Jūsų jutiklis taip pat gali aptikti kitas spalvas ir jų derinius. Žr. RGB spalvų diagramą, pavyzdžiui, grafikos rengyklėje.

Norėdami įdiegti autorun Linux, daug jau buvo parašyta skirtingomis kalbomis, bet aš turiu ieškoti, nes aš čia bandžiau sumažinti didžiąją dalį. Tai nevisiškai paaiškina visą procesą nuo nulio, tačiau pateikiama pakankamai informacijos ir nuorodų, kad automatinis programų paleidimas „Linux“ taptų realybe.

Verta paminėti, kad norint, kad programa būtų pilnavertė paslauga / demonas, ji turi būti tinkamai parašyta (link1, link2). Tačiau tai ne visada daroma, nors galbūt tai nėra visiškai teisinga.

Yra keli būdai, kaip automatiškai paleisti programas „Linux“:

  • parašykite programos / paleidimo scenarijaus iškvietimą į /etc/rc.local fone (&) (skirtinguose paskirstymuose tai gali būti skirtingose \u200b\u200bvietose, pavyzdžiui, /etc/rc.d/rc.local) su nukreiptais įvesties / išvesties srautais / dev / null. Pvz., „/ Home / user / my_prog 1\u003e / dev / null 2\u003e / dev / null &“. Taip pat galite naudoti komandą nohup;
  • paskambinkite / etc / inittab, vadovaudamiesi jo projektavimo taisyklėmis. Skirtingai nuo pirmojo metodo, galite nurodyti programos vykdymo lygį;
  • parašykite scenarijų, kuris leidžia jums paleisti / sustabdyti / iš naujo paleisti programą kaip demoną, taip pat gauti informaciją apie jos būseną.
Pirmasis metodas yra pats lengviausias, tačiau kartu ir pats problemiškiausias. Rc.local failas yra ne visuose paskirstymuose. Jame negalima nustatyti trigerio lygio. Jei ten įrašytos kelios programos, sunku jas valdyti kaip paslaugas (nebent viską paleisite ar sustabdysite tuo pačiu metu). Galų gale paleidimas iš jo pakenkia sistemos stabilumui nuo įsilaužimo (pavyzdžių galima lengvai rasti paieškos variklyje).

Antrasis metodas yra gana egzotiškas, jis pats apie tai sužinojo neseniai, nors rašo, kad juo naudojasi daugelis administratorių. Nepaisant to, negalima naudotis tokiomis programomis, kaip demonai, paleista tokiu būdu, o tai yra gana nepatogu. Taip, ir netvarka inittab negraži.

Pastarasis metodas šiuo metu yra pats „košerinis“, tačiau šiek tiek sudėtingesnis nei ankstesnieji (galbūt iš pirmo žvilgsnio). Būtent jis pristato visus sistemos demonus, kuris kalba pats už save. Todėl apsvarstysiu tai žemiau.

Taip pat yra būdas paleisti grafines programas, bet aš aprašysiu tai pabaigoje, atskirai nuo kitų, nes jis turi nedemonišką darinį.

Iškart pasakysiu, kad turiu „Debian 6“, o kituose paskirstymuose keliai gali šiek tiek skirtis.

Automatinio paleidimo programa kaip demonas

Paprastai sistemoje jau yra daug patarimų, kaip tai padaryti, tačiau vis tiek turite kopijuoti į įvairius failus ir ieškoti papildomos informacijos internete. Tai nereiškia, kad aprašysiu kiekvieną raidę čia, bet aš turiu ieškoti mažiau, tikiuosi.

Norėdami pradėti, verta pažvelgti į /etc/init.d katalogą. Jame yra visų paslaugų paleidimo scenarijai, taip pat du failai tiems, kurie nori patys parašyti tą patį:

README ir skeletas

„Skeleton“ yra paleidimo scenarijaus blankas su gana išsamiais komentarais, o „README“ jį gana gerai papildo, nepaisant mažo dydžio. Taip pat galite pasižiūrėti kitus failus ir pabandyti rasti ten ką nors, kas paaiškintų nesuprantamą situaciją.

Šeštasis debiutas naudoja LSB („Linux Script Base“) „Init Standart“ paleisties demonų scenarijams. Apie tai galite perskaityti daugiau. Sistemų, kuriose LSB nenaudojamas, ieškokite čia.

Pažvelkime atidžiau į skeleto failą. Pirmas dalykas, nuo kurio reikėtų pradėti, žinoma, yra „#! / Bin / sh“, nes init scenarijus yra paleisties failas. Toliau ateina komentuojama antraštė:
  ### BEGIN INIT INFO # Pateikiama: skeletas # būtinas paleidimas: $ remote_fs $ syslog # būtinas sustabdymas: $ remote_fs $ syslog # numatytasis paleidimas: 2 3 4 5 # numatytasis sustabdymas: 0 1 6 # Trumpas aprašymas: Initscript # pavyzdys: Aprašymas: Šis failas turėtų būti naudojamas kuriant scenarijus, kuriuos # reikia įkelti į /etc/init.d. ### END INIT INFO
Gali atrodyti, kad tai tik nereikalinga autoriaus informacija, tačiau taip nėra. Tai, kas nurodyta čia, naudojama rašant scenarijų sistemai. Čia naudingas failas README, kuris rodo, kad ne visi įmanomi parametrai yra išvardyti skeleto antraštėje. Bent jau yra šie dalykai:
  # Reikėtų pradėti: $ portmap # Reikėtų sustabdyti: $ portmap # X-Start-Before: nis # X-Stop-After: nis # X-Interactive: true
  Visus parametrus ir jų išsamų aprašymą (angliškai) galima pamatyti, bet rusų kalba. Prie rusiškos versijos pridėsiu, kad skiltyje „Būtina pradėti“: galite parašyti $ all, tada dabartinis scenarijus bus paleistas po visų kitų (kartais tai būtina). Taip pat „X-Interactive“: „true“ rodo, kad šis scenarijus gali sąveikauti su vartotoju, paprašydamas įvesti ką nors, pavyzdžiui, slaptažodį.

Kitas skeletas yra kintamųjų, naudojamų pačiame scenarijuje, inicijavimas. Kai kuriuos iš jų reikės pritaikyti pagal jūsų poreikius. Tada patikrinkite, ar pats demonas egzistuoja, ir pabandykite perskaityti konfigūracijos failą (jų vardai turi būti nurodyti aukščiau esančiuose kintamuosiuose), tada įkelkite rcS kintamuosius ir tada pasirodo viena įdomiausių init failo dalių:
  . / lib / lsb / init funkcijos
  tai yra LSB funkcijų, skirtų darbui su žurnalais, LSB paslaugos būsenos, darbo su procesu apibrėžimas. Kai kuriuose paskirstymuose šis failas gali būti aplanke /etc/init.d. Pavadinimus ir dalį informacijos galite rasti tiesiogiai iš komentarų apie šio failo funkcijas.

Kita dalis yra paties scenarijaus turinys. Kėbulą sudaro sąlyginės dalys, kurios yra komandos demonui: paleisti, sustabdyti, paleisti iš naujo / perkrauti / priversti iš naujo, būsena. Kažkas juos pasirenka pagal atskiras funkcijas, kažkas ne. Mano nuomone, funkcijos atrodo estetiškiau, o kodas yra suprantamesnis. Visas šias komandas jungia didžiųjų ir mažųjų raidžių rinkinys, kuris pasirenka norimą įvykdyti kodo fragmentą, atsižvelgiant į komandą (parametrą), su kuria buvo paleistas init scenarijus.

Taigi norint sukurti įprastą scenarijų, pakanka pakeisti reikalingas reikšmes kintamaisiais failo pradžioje ir, galbūt, pridėti šiek tiek kodo į pradžios / sustabdymo funkcijas (pvz., Tvarkyklės pakrovimas / iškrovimas).

Kai failas bus paruoštas, turite nukopijuoti jį į /etc/init.d ir pridėti jį paleisdami:
  atnaujinti-rc.d<имя_скрипта>  nutylėjimai
  (arba insserv<имя_скрипта>  6 stabiliam ir aukštesniam deianui)
  Galite pašalinti jį iš paleisties taip:
  atnaujinti-rc.d -f<имя_скрипта>  pašalinti
  (arba insserv -r<имя_скрипта>  6 stabiliam ir aukštesniam deianui)

Autorinės grafikos programinė įranga neįvedant slaptažodžių

Vien šios funkcijos įgyvendinimas sumažina OS saugumo lygį, kaip įeiti gali bet kas. Tačiau yra situacijų, kai to reikia. Čia apsvarstysiu galimybes tik dviem pagrindiniams grafikos tvarkytojams, kaip nėra kitų, įrengtų po ranka.

Prisijungimo slaptažodžio užklausą galite pašalinti valdymo centre („kcontrol“) -\u003e sistemos administravimas -\u003e prisijungimo tvarkyklė -\u003e patogumas. Ten pasirinkite vartotoją, prie kurio reikia prisijungti (išskyrus šaknį), ir pažymėkite reikiamus varnelius (leisti automatinį prisijungimą ir prisijungimą neįvedant slaptažodžio).

Jei norite, kad programa būtų paleista automatiškai, turite / home /<пользователь>/.kde/Autostart pridėkite nuorodą į reikalingos programinės įrangos paleidimo failą / scenarijų.

Čia taip pat galite pašalinti prisijungimo slaptažodžio užklausą valdymo centre (gnome-control-centre) -\u003e Prisijungimo ekranas. Ten, po šaknimi (kiškite užraktą, įveskite slaptažodį), pasirinkite vartotoją, prie kurio norite prisijungti (išskyrus super vartotoją). Pridėti žymas

Paleidę kompiuterį, kaip taisyklė, turime paleisti kai kurias programas. kurias dažniausiai naudojame. Taip pat, paleidus sistemą, mums gali tekti atlikti tam tikrus veiksmus, pavyzdžiui, sukurti reikiamus failus ar nustatyti kai kuriuos parametrus. Tai padaryti labai nepatogu rankiniu būdu. Norint išspręsti tokias problemas, reikia pradėti.

Šiame straipsnyje apžvelgsime, kaip veikia „Linux“ automatinis įkėlimas, kaip pridėti automatinio įkėlimo programas, kur jis bus teisingiau pridėtas ir kokių tipų automatinis įkėlimas yra šioje operacinėje sistemoje.

Norėdami suprasti, kaip veikia automatinis įkėlimas, pirmiausia turite atsiminti, kas vyksta per. Kai tik branduolys užbaigs savo inicializavimą ir bus pasirengęs tolesniam darbui, jis perduos valdymą inicializacijos sistemai. Inicializacijos sistema yra pagrindinis procesas, būtent jis pradeda visus kitus sistemos procesus.

Yra procesų, kurių inicijavimo sistema, pavyzdžiui, „systemd“, paleidžiama pagal numatytuosius nustatymus, tačiau taip pat galite ją sukonfigūruoti, kad paleistumėte reikiamus procesus. Taip pat daugelis vaikų procesų vykdo scenarijų failus arba yra viena ar kita galimybė paleisti jums reikalingas programas. Ši funkcija naudojama daugelyje stalinių kompiuterių aplinkų.

Apsvarstykite pagrindinius paleisties lygius, kuriuos galite naudoti:

  - vietoje inicializacijos sistemos galite nurodyti bet kurią programą, kuri bus paleista paleidus branduolį;  - pagrindinių sistemos paslaugų, papildomų paslaugų, taip pat jūsų scenarijų paleidimas sistemos inicializacijos etape; - Pasenęs scenarijų įkėlimo būdas, atliekamas prieš pradedant grafinę aplinką;  - scenarijus ar komandas galite vykdyti paleidę prisijungimo tvarkyklę, bet prieš paleisdami aplinką;  - paleiskite reikiamas programas ar scenarijus iškart paleidę X serverį;  - Daugumoje aplinkų palaikomos paleisties programos, netgi galite sukonfigūruoti atidėtą paleidimą ir kitus parametrus;  - naujausias pasirinkimas yra paleidimas atskiro apvalkalo lygyje, reikalingas komandas galite vykdyti automatiškai, kai tik paleidžiamas terminalas.

Automatinis įkrovimas branduolio lygmenyje vargu ar bus labai naudingas kasdieniam naudojimui, tačiau nusprendžiau tai paminėti, nes tokia galimybė yra. Naudodamiesi init branduolio parametru, galite nurodyti, kuri programa turėtų būti paleista iškart, kai branduolio paleidimas bus baigtas. Pvz., Vietoj „Systemd“ galite įkelti „Bash“ apvalkalą. Norėdami tai padaryti, tiesiog pakeiskite branduolio paleidimo eilutę „Grub“ konfigūracijos faile arba paleisdami. Pabaigoje pridėkite parametrą init:

sudo vi /boot/grub2/grub.cfg

linux /vmlinuz-4.8.0-22-generic root \u003d / dev / mapper / systems-ubuntu ro tylus init \u003d / bin / bash


Bet paprastai šią vertę yra patogiau laikinai pakeisti meniu „Grub“. Plačiau apie tai skaitykite straipsnyje. Tai neleidžia automatiškai įkelti Linux programos, tačiau, nepaisant to, ji kartais gali būti naudinga.

Dažniausiai, kai sakoma „Linux“ automatinis įkėlimas, tai reiškia paslaugų automatinį įkėlimą naudojant inicializacijos sistemą. „Systemd“ turi labai pažangią sistemą. Tai palaiko priklausomybės skiriamąją gebą, lygiagretų paleidimą, atidėtą paleidimą ir paleidimą iš naujo, jei įvyksta klaida. Sistemos terminologijoje visos paleistos programos vaizduojamos vieneto failais, kiekvienas vienetas apibūdina programos parametrus, vykdomąjį failą, taip pat papildomus paleidimo reikalavimus.

„Systemctl“ komanda naudojama paslaugoms pridėti arba pašalinti iš automatinio paleidimo. Norėdami pridėti paslaugą prie automatinio paleidimo, atlikite šiuos veiksmus:

sudo systemctl įjungti paslaugos_pavadinimas

Ir išjungti jos linux autorun:

sudo systemctl išjungti paslaugos_pavadinimą

Pvz., Jei norite pridėti „Apache“ prie automatinio įkėlimo, tai turite padaryti:

sudo systemctl įgalinti afišą

Taip pat galite patikrinti, ar paslauga jau buvo pridėta paleidžiant:

sudo systemctl yra įgalinta httpd


Jei nežinote tikslaus paslaugų failo pavadinimo, bet žinote jo pirmąją raidę, galite naudoti automatinį pildymą, kaip ir bet kurioje kitoje terminalo vietoje, naudodami mygtuką „Tab“:


Taip pat galite pamatyti visas paslaugas, kurios buvo pridėtos paleidžiant, naudojant komandą:

„systemctl“ sąrašo vienetų failai | grep įjungtas


Anksčiau buvo įprasta visus scenarijus, kurie pagal numatytuosius nustatymus buvo dedami į /etc/rc.local failą. Šis failas vis dar egzistuoja, tačiau tai yra „SysVinit“ inicijavimo sistemos reliktas ir dabar išsaugotas tik suderinamumui. Skriptus reikia įkelti tik naudojant „Systemd“.

Norėdami tai padaryti, tiesiog sukurkite paprastą vieneto failą ir pridėkite jį paleisdami, kaip ir bet kurią kitą paslaugą. Pirmiausia sukurkite šį failą:

sudo vi /lib/systemd/system/runscript.service


  Aprašymas \u003d Mano scenarijaus tarnyba
  Po \u003d kelių vartotojų.target


  Tipas \u003d nenaudojamas
  ExecStart \u003d / usr / bin / local / script.sh


  „WantedBy“ \u003d daugiafunkcinis vartotojas

Skyriuje Vienetas  pateikiame trumpą bylos failą ir kalbamės pasirinkdami parinktį Pokad jums reikia paleisti šį scenarijų kelių vartotojų režimu (kelių vartotojų). Skyrius Aptarnavimas  svarbiausia, čia nurodome paslaugos tipą -   nenaudojamas, tai reiškia, kad jums tiesiog reikia pradėti ir pamiršti, nereikia atlikti stebėjimo, o tada į parametrą „Execstart“  nurodykite visą kelią iki mūsų scenarijaus.

Belieka nustatyti teisingas teises:

sudo chmod 644 /lib/systemd/system/runscript.service

Tada atnaujinkite konfigūraciją ir pridėkite naują scenarijų paleisdami „Linux“:

sudo systemctl demonas-perkrovimas
  $ sudo systemctl įgalina myscript.service

Po kito perkrovimo šis scenarijus bus paleistas automatiškai. Atminkite, kad kiekvieno scenarijaus, kurį ketinate paleisti, teisės turi būti teisingai nustatytos, būtent turite nustatyti vykdymo vėliavą. Norėdami tai padaryti, naudokite komandą chmod:

sudo chmod u + x / usr / local / bin / script

Parametruose perduodame scenarijaus failo adresą naudingumui. Visų metodų įgyvendinimas yra būtinas.

Dažnai lengvoje darbalaukio aplinkoje ir langų tvarkytuvėse paleisties programos X serverio lygiu naudojamos automatiškai įkelti programas. Visi tokiu būdu paleisti scenarijai bus paleisti paleidus X serverį. Norėdami nustatyti tokį „Linux“ paleidimą, viskas, ką jums reikia padaryti, yra pridėti reikalingo scenarijaus kelią į failą ~ / .xinitrc arba / etc / X11 / xinit / xinitrc. Pridėtos eilutės sintaksė yra tokia:

vykdo scenarijaus kelią ir

Jei ~ / .xinitrc failo dar nėra, tuomet turite jį sukurti:

cp / etc / X11 / xinit / xinitrc ~ / .xinitrc

Tada, norėdami pridėti linux scenarijų paleisdami, redaguokite failą, kiek jums reikia. Pavyzdžiui, paleisime „Firefox“:

vykdyti / usr / bin / Firefox &


Galingos darbastalio aplinkos, tokios kaip „Gnome“ ir KDE, turi savo paleisties programas. Pavyzdžiui, „Gnome“ vadinama programa   „Automatiškai paleistos programos“. Tai galite paleisti iš pagrindinio sistemos meniu:


Čia matote visas programas, kurios jau įtrauktos į paleistį. Galite išjungti kiekvieną iš jų tiesiog panaikindami žymėjimą.


Norėdami pridėti naują programą ar scenarijų paleisdami, spustelėkite „Pridėti“:


Čia reikia užpildyti tris laukus:

  • Vardas  - savavališkas komandos, kurią galite rasti, pavadinimas;
  • Komanda  - Visas kelias į vykdomąjį programos failą;