crearea unui pachet .deb și autoexecutarea acestuia (Unix, Ambalare, Deb)

MrBit a intrebat.

Folosesc un Raspberry Pi 2 Model B care rulează cea mai recentă versiune Raspbian Stretch Lite 2018-11-13.

Am construit un program care comunică cu un cip LoRa (SX1276) folosind SPI, obține niște date de la un senzor de temperatură și imprimă temperatura pe ecran.

Programul meu este format dintr-un singur executabil (în afară de biblioteca wiringpi).

Am căutat un tutorial pentru a face din programul meu un pachet *.deb. Folosind acest tutorial am reușit să construiesc un pachet lora.deb pachet.

Când am instalat programul meu lora.deb pachetul sudo dpkg -i lora.deb executabilul s-a desfășurat pur și simplu într-un director.

Cum pot face ca acel pachet să ruleze automat executabilul și, de asemenea, să îl ruleze de fiecare dată când sistemul pornește?

Comentarii

  • Consultați systemd fișiere de servicii. Dacă pachetul deb conține un fișier de servicii și dacă adăugați un script post-instalare la pachet, puteți lansa un serviciu după instalare în mod automat și la pornire. –  > Por 111—.
  • Consultați aici aici pentru ghiduri de scriere a fișierelor de unitate systemd, care vor fi folosite de systemd (care se ocupă de pornire) pentru a porni serviciul dvs. –  > Por novice.
1 răspunsuri
tkjef

schimbați „/usr/bin/ceva” în „/directory/path/to/deployed/executable” de mai jos:

$ cat /etc/systemd/system/something.service

[Unit]
Description = Something Service
After = network.target

[Service]
ExecStart = /usr/bin/something

[Install]
WantedBy = multi-user.target

$ systemctl daemon-reload
$ systemctl enable something
$ systemctl start something

Comentarii

  • Vă mulțumesc foarte mult! Citind prin toate aceste site-uri și tutoriale am ajuns la soluția pentru întreaga metodă. În primul rând trebuie să adaug un myapp.service în fișierul meu *.deb pachet, apoi va trebui să scriu un script postinstalație care va copia fișierul myapp.service în calea corectă și să activeze serviciul. Nu sunt foarte sigur dacă în loc de o copie trebuie doar să adaug myapp.service în *.deb pachet cu calea corespunzătoare. –  > Por MrBit.
  • Este drăguț, dar răspunde doar parțial la întrebare. Unde merge acest fișier .service în fișierul .deb? Cum este activat serviciul de către fișierul .deb? –  > Por Jerther.