Fórum Root.cz

Hlavní témata => Software => Téma založeno: Michal 08. 06. 2013, 11:18:35

Název: Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 11:18:35
Dobrý den,

mohl by mi prosím někdo poradit jak v linuxu (raspbian) nastavit to, aby se mi po nastartování LXDE spustil LXterminal a v něm nějaké příkazy?
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Pavel 'TIGER' Růžička 08. 06. 2013, 12:57:17
/home/profil/.config/autostart/lxterminal.desktop a v něm:

[Desktop Entry]
Type=Application
Exec=lxterminal -e mc

Což Ti po startu spustí lxterminal s mc.

Ale neznám Tvou distribuci, třeba to tak nebude fungovat.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 13:41:06
Uvadel jsem ze mam distribuci raspbian :)

Ale jinak dekuji, jen by me zajimalo, to co jsi mi napsal je pro vykonani pouze jednoho prikazu? Nebo jich muzu uvest vice?
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: JardaP . 08. 06. 2013, 15:03:52
Nebo jich muzu uvest vice?

Muzes misto prikazu zavolat svuj skript a v nem tech prikazu mit treba milion.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Pavel 'TIGER' Růžička 08. 06. 2013, 15:15:43
Nebo jich muzu uvest vice?

Muzes misto prikazu zavolat svuj skript a v nem tech prikazu mit treba milion.
Což znamená, že místo toho mc bude název toho skriptu. Neznám Tvou distribuci = že ji nepoužívám, takže nevím, jestli to tam takto bude fungovat.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 15:41:43
A ten skript by mel byt napsany v jakem souboru a strukture? Jsem v tomto zacatecnik, tak se omlouvam za mozna zbytecne otazky.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Pavel 'TIGER' Růžička 08. 06. 2013, 16:00:55
Nejlépe začít asi tímto: http://www.abclinuxu.cz/clanky/navody/bash-i
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: pavel 08. 06. 2013, 16:04:27
Skript by mel byt napsany v souboru a strukture odpovidajici danemu programovacimu jazyku ci prikazovem interpretru, ktery chces pouzit - napriklad Bash, Dash, Zsh, Bourne Shell (sh), Awk, Gawk, Mawk, Perl, Python,  Ruby, PHP. :)
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 18:08:27
Dobre, zkusim to zkonkretizovat. Chci pomoci toho skriptu spustit tyto 2 prikazy:
1. "gpio load spi"
2. "./Desktop/app"
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Ivorne 08. 06. 2013, 18:09:35
lxterminal -e bash -c 'ls -l; bash'

Tento příkaz spustí lxterminal a v něm spustí příkaz "bash -c 'ls -l; bash'". Ten příkaz spustí bash a v něm script "ls -l; bash". Ten zase způsobí vypsání obsahu současného adresáře do lxterminalu a přepnutí do interaktivního režimu.


lxterminal -e bash -c '~/myscript.sh; bash'

Toto je velmi podobný příkaz. Otevře lxterminal, v něm spustí soubor 'myscript.sh' umístěný v domovském adresáři a pak přepne do interaktivního režimu.


myscript.sh může vypadat třeba takhle (nebo jakkoliv jinak, viz zmiňovaný seriál http://www.abclinuxu.cz/clanky/navody/bash-i (http://www.abclinuxu.cz/clanky/navody/bash-i)):

#!/bin/bash
echo "spuštěné procesy uživatele `whoami`:"
ps -u `whoami`
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Ivorne 08. 06. 2013, 18:14:36
Dobre, zkusim to zkonkretizovat. Chci pomoci toho skriptu spustit tyto 2 prikazy:
1. "gpio load spi"
2. "./Desktop/app"

Ještě není jasné, jestli chceš, aby se jenom provedly tyhle příkazy a pak se lxterminal ukončil (pak ani není třeba používat terminál, ale stačí to spustit rovnou). Nebo jestli chceš, aby se to provedlo v terminálu a ten se pak ukončil jenom když příkazy proběhnou v pořádku. Nebo jestli chceš, aby se provedly v terminalu a pak se v něm zapnul bash (nebo jiný shell).

Asi by bylo ale dobré udělat si script, který tyto příkazy provede (viz můj předchozí příspěvek a TIGERem zmiňovaný seriál o bashi) a až teprve pak tento vytvořený script spouštět požadovaným způsobem.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 18:39:02
Potrebuji aby terminal byl po spusteni posledniho (druheho) prikazu otevreny. Pac se budou do tohoto terminalu vypisovat vysledky spustne "app", ktera bude vypisova stavy kazdou minutu
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Ivorne 08. 06. 2013, 18:51:47
Potrebuji aby terminal byl po spusteni posledniho (druheho) prikazu otevreny. Pac se budou do tohoto terminalu vypisovat vysledky spustne "app", ktera bude vypisova stavy kazdou minutu

A co cheš aby se s terminálem stalo po skončení toho podledního (druhého) příkazu?
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 19:58:03
zustane otevreny, pac z toho posledniho prikazu budou chodit pravidelne reporty do terminalu
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: pavel 08. 06. 2013, 20:11:45
Člověče, z Vás to leze jak z chlupaté deky...  8)
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 08. 06. 2013, 20:21:55
Ja myslel, ze je jasne co chci :)
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Ivorne 08. 06. 2013, 23:04:31
No pořád tu je pár nejasností, ale co nadělám.

Zkus třeba něco takového (řetězce ohraničené znaky <> nahraď za správné hodnoty):

/home/<jmeno-uzivatele>/.config/autostart/lxterminal-app.desktop:
Kód: [Vybrat]
[Desktop Entry]
Type=Application
Exec=lxterminal -e /home/<jmeno-uzivatele>/lxterminal-app.sh

/home/<jmeno-uzivatele>/lxterminal-app.sh:
Kód: [Vybrat]
#!/bin/bash
gpio load spi
<absolutni-cesta>/Desktop/app

A udělej soubor /home/<jmeno-uzivatele>/lxterminal-app.sh spustitelný. Např příkazem:
Kód: [Vybrat]
chmod a+x /home/<jmeno-uzivatele>/lxterminal-app.sh
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Palo M. 09. 06. 2013, 04:30:13
zustane otevreny, pac z toho posledniho prikazu budou chodit pravidelne reporty do terminalu
A preco maju tie reporty ist prave do terminalu? Vacsinou sa pouziva to, ze program sa spusti na pozadi (a ak nejde o vec suvisiacu priamo s grafickym prostredim, tak prihlasenie ani nie je nutne) vystup je presmerovany do suboru, ktory sa da hocijako spracovavat (samozrejme ten subor mozes zaroven aj priebezne vypisovat do terminalu) a hlavne ti to cele nezmizne, ked sa nieco neobvykle stane (napriklad vypadok prudu).

Inak naozaj to z teba lezie jak z chlpatej deky. Keby si hned na zaciatku popisal aj suvislosti (aku situaciu riesis, ako si riesenie celkovo predstavujes a s ktorym detailom potrebujes pomoct), dostal by si pravdepodobne uzitocnejsie odpovede - hlavne ak si zaciatocnik.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Michal 09. 06. 2013, 10:54:43
Dobrá tedy, tak to zkusím popsat :)
Koupil jsem si Raspberry Pi a na něm mi běží linuxová distribuce Rasbian. Koupil jsem jej proto, že vyvijím vlastní meteostanici postavenou na ARMu. No a vzhledem k tomu, že tato meteostanice bude posílat (už asi týden posílá) naměřená data a je umístěna v zahradě, kde se mi nechce tahat ethernetový kabel, tak jsem to vyřešil bezdrátovou komunikaci (2.4 Ghz). Takže mi jdou data z metea do RPi a z RPi na server. To co zobrazuji v terminálu jsou aktuálně naměřená data a potvrzení odeslání těchto dat na server. Ten výpis do terminálu mi přišel jako dobrý nápad, když pro správu RPi používám TightVNC. Akorát jak už jsem tu zmínil já i někdo jiný, po výpadku proudu se musím připojit do RPi a ručně musím povolit používaní SPI komunikaci na GPIO (proto ten příkaz "gpio load spi") a pak spustit samotný skript, který obsluhuje bezdrátový modul, přeposílá data na server a výtváří výpis v terminálu. Takže vidím, kdy přišli poslední data, jaké byly jejich hodnoty a zda se je podařilo odeslat na server. Ale je fakt, že výstup do souboru by možná nebyl marný, aspoň by to byla nějaká záloha.
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Ivorne 09. 06. 2013, 11:10:59
No už jsme ti tu napsali kopu rad, jak na to. Zkoušel jsi už něco z toho?
Název: Re:Spustění LXterminalu po spuštění
Přispěvatel: Tomaskom 09. 06. 2013, 12:54:18
...Ale je fakt, že výstup do souboru by možná nebyl marný, aspoň by to byla nějaká záloha.

Rozhodně do souboru! Pokud vedle toho chceš v terminálu zobrazovat i to co do souboru teče, použij
Kód: [Vybrat]
tail -f ~/mujlog.txtAle aby v terminalovém okně běžel samotný skript je pitomost.