Kirjoittaja Aihe: [RATKAISTU] monen sovelluksen käynnistys scriptillä  (Luettu 10667 kertaa)

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
"Vanhaan hyvään aikaan"
saatoin käynnistää kerralla monta sovellusta desktopissa tekstifilulla, periaatteessa näin:

Code:
#!/bin/bash
firefox &
evolution &
gedit myfiles &
exit 0

Mutta uusissa Ubuissa (eg. 18.04) käynnistyy vain tekstifilun editori.  Miten näissä uusissa Ubuissa käynnistetään scriptillä kerralla useita sovelluksia?

Huomasin, että koneen startuppiin voi tehdä multikäynnistyksen, mutta ei enää käynnissä olevaan koneeseen?

redu
« Viimeksi muokattu: 12.09.18 - klo:12.44 kirjoittanut redu »
Ubuntua 98%, Winkua 2%

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #1 : 11.09.18 - klo:16.52 »
Nautilus avaa nykyisin skriptitiedostot oletuksena tekstieditoriin. Voit asettaa ne suoritettaviksi asetuksissa. Käynnistä tiedostoselain ja avaa yläpaneelin pudostusvalikko Tiedostot. Valitse sieltä Asetukset ja välilehti Toiminta. Valitse Suoritettavat tekstitiedostot -> Suorita ne


Yleisesti toimiva ja suositeltava vaihtoehto on luoda skriptille desktop-tiedosto: https://linuxconfig.org/how-to-create-desktop-shortcut-launcher-on-ubuntu-18-04-bionic-beaver-linux

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #2 : 11.09.18 - klo:19.59 »
Kiitos nm,
mutta 16.04:n ja 18.04:n filemanagereitten alasvetovalikoissa ei ole mitää asetuksia? Tekstifiluissa on kyllä mahdollisuus muuttaa ne runnattaviksi, mutta silti ne aukeavat vain editoriin.

desktop-tiedosto kai sitten on tehtävä? Vaikuttaa hankalalta.

redu
Ubuntua 98%, Winkua 2%

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11433
    • Profiili
    • Tomin kotisivut
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #3 : 11.09.18 - klo:20.18 »
mutta 16.04:n ja 18.04:n filemanagereitten alasvetovalikoissa ei ole mitää asetuksia? Tekstifiluissa on kyllä mahdollisuus muuttaa ne runnattaviksi, mutta silti ne aukeavat vain editoriin.

Katsoitko nyt varmasti oikeasta paikasta? 18.04:ssä yläpaneelissa on tuo aktiivisen ohjelman kuvake ja nimi. Siitä klikkaamalla saat pudotusvalikon, jossa Tiedostot-ohjelmaa käytettäessä pitäisi näkyä Asetukset-kohta.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #4 : 11.09.18 - klo:20.39 »
Selitän, mihin pyrin:
Haluaisin tehdä naamatauluun kuvakkeen, jolla käynnistyisi kerralla kokonainen digisoitin = jack, zynaddsubfx,        midi-keyboard.
       a2midid pakottaa systeemin jack-moodiin
       qjackctl starttaa jack panelin
       pbay4work.xml on jack:in patchbay-filu
       choir.xmz on Zynaddsubfx:n preset-filu

Vanhaan hyvään aikaan joku tämmönen scripti olisi tehnyt homman:

#! /bin/bash
a2jmidid –export-hw &
qjackctl –active-patchbay=pbay4work.xml &
jack_connect &
zynaddsubfx –auto-connect –load="/home/steve/bin/choir.xmz"

Appien järjestys ja syntaksi saattavat olla viallisia, kun en ole päässyt kikeilemaan...


Tomin:in sanomaa yläpalkin aktiivisen ohjelman kuvaketta en näe missään?

redu
Ubuntua 98%, Winkua 2%

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #5 : 11.09.18 - klo:21.07 »
Vanhaan hyvään aikaan joku tämmönen scripti olisi tehnyt homman:

#! /bin/bash
a2jmidid –export-hw &
qjackctl –active-patchbay=pbay4work.xml &
jack_connect &
zynaddsubfx –auto-connect –load="/home/steve/bin/choir.xmz"

Appien järjestys ja syntaksi saattavat olla viallisia, kun en ole päässyt kikeilemaan...

Voihan sen skriptin käynnistää päätteen kautta kokeilua varten. :)

Tuollaisten skriptien ajaminen työpöydän kautta on edelleen tuettua, kunhan muutat sen oletusasetuksen. Suosittelisin kuitenkin valitsemaan skriptien ajamiseen vaihtoehdon "Kysy aina" ja tekemään erillisen desktop-tiedoston työpöytä- tai käynnistinkuvaketta varten.


Tomin:in sanomaa yläpalkin aktiivisen ohjelman kuvaketta en näe missään?

Esimerkiksi tässä kuvakaappauksessa Files-valikko (suomeksi Tiedostot) näkyy yläpaneelin vasemmassa laidassa, kun tiedostoselain on auki ja fokuksessa:



redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #6 : 12.09.18 - klo:12.43 »
Kiitos pirusti nn!
Nyt homma alkoi sujua.
Etsitty "Files"-alasvetovalikko onkin siis Ubun desktopin yläpalkissa. Olen tyhmä!
Files / Preferences / Behavior / Executable text files   "Run them"

redu
Ubuntua 98%, Winkua 2%

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #7 : 27.09.18 - klo:14.55 »
Nautilus avaa nykyisin skriptitiedostot oletuksena tekstieditoriin. Voit asettaa ne suoritettaviksi asetuksissa. Käynnistä tiedostoselain ja avaa yläpaneelin pudostusvalikko Tiedostot. Valitse sieltä Asetukset ja välilehti Toiminta. Valitse Suoritettavat tekstitiedostot -> Suorita ne


Yleisesti toimiva ja suositeltava vaihtoehto on luoda skriptille desktop-tiedosto: https://linuxconfig.org/how-to-create-desktop-shortcut-launcher-on-ubuntu-18-04-bionic-beaver-linux

nm,
kokeilin tätä desktop-tiedostoa scriptin sijasta, koska tähän saa mukaan oman ikoninkin. Esimerkki on antamassasi linkissä:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/snap/bin/skype
Name=Skype
Comment=Skype
Icon=/snap/skype/23/usr/share/icons/hicolor/256x256/apps/skypeforlinux.png

Toimii muuten kivasti, mutta tuo Exec-komento sallii näämmäs vain yhden terminaalikomennon, enkä saa millään konstilla kahta peräkkäistä komentoa peliin.


Scriptiversiossa saatan lisätä useita komentoja esimerkiksi & välimerkillä erotellen, mutta tässä desktop-tiedostossa ei mokoma toimi. Vai olenko taas tyhmä?

Tekemän scriptiesimerkki, joka hallitsee kaksi komentoa:
#!/bin/bash
qjackctl &
zynaddsubfx   (plus zynin optiomäärittelyt)


Ubuntua 98%, Winkua 2%

SuperOscar

  • Käyttäjä
  • Viestejä: 3993
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #8 : 27.09.18 - klo:15.07 »
Eikö ratkaisu ole yksinkertainen:  .desktop-tiedosto osoittaa skriptiin, joka käynnistää varsinaiset ohjelmat?
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #9 : 27.09.18 - klo:15.24 »
Eikö ratkaisu ole yksinkertainen:  .desktop-tiedosto osoittaa skriptiin, joka käynnistää varsinaiset ohjelmat?
Ovela idea Superi!
Muttei toiminut - ainakaan heti? Näyttö menee pimeäksi, eikä edes terminaali näytä mitään (Terminal=true).

On hassua, että jos kirjoitan desktop-tiedostoon useita Exec= rivejä, niin Ubu 18.04 suorittaa niistä vain viimeisen? Miksi ei ensimmäistä?
Ubuntua 98%, Winkua 2%

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11433
    • Profiili
    • Tomin kotisivut
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #10 : 27.09.18 - klo:16.01 »
Muttei toiminut - ainakaan heti? Näyttö menee pimeäksi, eikä edes terminaali näytä mitään (Terminal=true).

Mitä tarkoitat, että näyttö meni pimeäksi? .desktop-tiedoston ei kyllä itse pitäisi sellaista voida mitenkään aiheuttaa. Terminal=true määrittelee, että komennot on ajettava pääte-emulaattorissa (esim. gnome-terminal) eli silloin aukaistaan uusi päätteen ikkuna. Sinänsä sitä ei tarvita, jos päätteeseen ei ole tarkoitus kirjoittaa mitään eikä sieltä ole tarkoitus lukea mitään.

On hassua, että jos kirjoitan desktop-tiedostoon useita Exec= rivejä, niin Ubu 18.04 suorittaa niistä vain viimeisen? Miksi ei ensimmäistä?

Johtunee tavasta, jolla tiedostoa luetaan. Jokainen Exec määrittely ylikirjoittaa edellisen, joten vain viimeinen käytetään. Lopulta suoritetaan se määrittely, joka oli saatu parsinnan tuloksena. Noihin kun ei ole ajateltu laitettavan useampia Exec-määrittelyjä.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #11 : 27.09.18 - klo:16.41 »
Toimii muuten kivasti, mutta tuo Exec-komento sallii näämmäs vain yhden terminaalikomennon, enkä saa millään konstilla kahta peräkkäistä komentoa peliin.

Pitäisi onnistua näin:

Koodia: [Valitse]
Exec=sh -c "qjackctl & zynaddsubfx"

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #12 : 27.09.18 - klo:17.17 »
Toimii muuten kivasti, mutta tuo Exec-komento sallii näämmäs vain yhden terminaalikomennon, enkä saa millään konstilla kahta peräkkäistä komentoa peliin.

Pitäisi onnistua näin:

Koodia: [Valitse]
Exec=sh -c "qjackctl & zynaddsubfx"

Kiitos taas nm!
Tällä lainausmerkkitempulla toimii. Mistä Ubuntun syövereistä tillasta oppia löytyy? Haluaisin oppia, kun kohta taas mennee jollakin toisella tavalla vaikeaksi.
Ubuntua 98%, Winkua 2%

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #13 : 27.09.18 - klo:18.39 »
Tällä lainausmerkkitempulla toimii. Mistä Ubuntun syövereistä tillasta oppia löytyy? Haluaisin oppia, kun kohta taas mennee jollakin toisella tavalla vaikeaksi.

Googlaamalla löytyy vastauksia melkein mihin tahansa vastaan tulevaan pulmaan. Jos kyseessä on tuore ohjelmisto-ongelma esimerkiksi päivityksen jälkeen, uusi hakuyritys muutaman päivän kuluttua voi olla hedelmällisempi.

Postimies

  • Käyttäjä
  • Viestejä: 2619
    • Profiili
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #14 : 27.09.18 - klo:22.38 »

Tällä lainausmerkkitempulla toimii. Mistä Ubuntun syövereistä tillasta oppia löytyy? Haluaisin oppia, kun kohta taas mennee jollakin toisella tavalla vaikeaksi.
Kyllä komentotulkin dokumentaatiota tai vihjeitä käytöstä kannattaa lukea. Unix komennot lyhyitä ja pienet erot merkittäviä. Esim && tarkoittaa, että seuraava ohjelma suoritetaan vasta kun edellinen on suoritettu loppuun mikä voi olla kätevää. & merkitsee, että ohjelma käynnistetään taustalle. Tuollaisia pikku eroja on paljon.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11433
    • Profiili
    • Tomin kotisivut
Vs: monen sovelluksen käynnistys scriptillä
« Vastaus #15 : 27.09.18 - klo:23.27 »

Tällä lainausmerkkitempulla toimii. Mistä Ubuntun syövereistä tillasta oppia löytyy? Haluaisin oppia, kun kohta taas mennee jollakin toisella tavalla vaikeaksi.
Kyllä komentotulkin dokumentaatiota tai vihjeitä käytöstä kannattaa lukea. Unix komennot lyhyitä ja pienet erot merkittäviä. Esim && tarkoittaa, että seuraava ohjelma suoritetaan vasta kun edellinen on suoritettu loppuun mikä voi olla kätevää. & merkitsee, että ohjelma käynnistetään taustalle. Tuollaisia pikku eroja on paljon.

Ja sitten kun mietit, että && merkitseekin and-operaatiota ja tarkoittaa sitä, että suoritetaan ensimmäinen komento ja jos sen totuusarvo on tosi, niin suoritetaan toinenkin ja sitten palautetaan sen viimeksi suoritetun totuusarvo. Mutta joo, tuotahan sillä useinkin tehdään. Mitäpä jos teetkin näin: "komento1 || komento2"?

Huomautan siis, että kun sanon tässä "tosi", niin tarkoitan, että komennon suoritus oli onnistunut ja se palautti arvon 0. Muu arvo tarkoittaisi virhettä eli "epätosi".
« Viimeksi muokattu: 27.09.18 - klo:23.28 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Postimies

  • Käyttäjä
  • Viestejä: 2619
    • Profiili
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #16 : 28.09.18 - klo:00.23 »
Hyvä huomio. Usein halutaan, että seuraava tehdään vain kun ensimmäinen on onnistunut. Tätä voi testata yksinkertaisesti
Koodia: [Valitse]
$ false || echo Hei!
 $ true || echo Hei!
 $ true && echo Hei!

Jos suorituksen onnistumisella ei väliä ";" riittää erotukseksi.


redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #17 : 03.10.18 - klo:13.24 »
.dektop-scriptini
toimivat nyt vallan mainiosti. Kiitos etenkin mn:lle. Tässä on esimerkki:

#!/usr/bin/env xdg-open
####################################
#
# Start Zyn.dektop application
#
####################################
[Desktop Entry]
Version=1.0
Name=6sine
Type=Application
Terminal=false
Exec=sh -c "/usr/bin/qjackctl  & /usr/bin/zynaddsubfx --load=/home/redu/Zyn/presets/B3DET/detune2keyb3form2018b.xmz"
Icon=/home/redu/Zyn/Icons/b3.png

Qjackctl ja ZynAddSub käynnistyvät yhtä kuvallista ikonia klikkaamalla. "detune2keyb3form2018b" on preset, joka käynnistyy Zyn:in mukana. Kätevää.
Minulla on näytöllä n kpl tämäntyyppisiä .dektop-ikoneita, ja jokaisesta käynnistyy erilainen soittimen uusi soundi.

On kuitenkin kiusallista, että soundinvaihto vaatii kaksi klikkausta. Sammutus-scriptin klikkaus sammuttaa edellisen Zyn:in (killall zynaddsubfx), ja toinen klikkaus (uusi .desktop-filu, jossa on mukana uusi soundi) käynnistää Zynin uudelleen.
Miten pärjäisin soundinvaihdossa yhdellä klikkauksella? .desktop-scriptin Exec-rivi ei näytä hyväksyvän "killall zynaddsubfx":ää.
Oikeastaan on turhaa sammuttaa Zyn soundivaihdossa, mutta "preset"-vaihto Zynin valikoitten kautta on soitellessa aivan liian hidas menetelmä.

Ubuntua 98%, Winkua 2%

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #18 : 03.10.18 - klo:13.47 »
Miten pärjäisin soundinvaihdossa yhdellä klikkauksella? .desktop-scriptin Exec-rivi ei näytä hyväksyvän "killall zynaddsubfx":ää.

Toimiiko näin:

Koodia: [Valitse]
Exec=sh -c "/usr/bin/killall zynaddsubfx; /usr/bin/qjackctl & /usr/bin/zynaddsubfx --load=/home/redu/Zyn/presets/B3DET/detune2keyb3form2018b.xmz"

redu

  • Käyttäjä
  • Viestejä: 487
    • Profiili
Vs: [RATKAISTU] monen sovelluksen käynnistys scriptillä
« Vastaus #19 : 03.10.18 - klo:15.19 »
Miten pärjäisin soundinvaihdossa yhdellä klikkauksella? .desktop-scriptin Exec-rivi ei näytä hyväksyvän "killall zynaddsubfx":ää.

Toimiiko näin:

Koodia: [Valitse]
Exec=sh -c "/usr/bin/killall zynaddsubfx; /usr/bin/qjackctl & /usr/bin/zynaddsubfx --load=/home/redu/Zyn/presets/B3DET/detune2keyb3form2018b.xmz"

Kappas... toimii. Puolipiste ; toimii siis erilailla kuin &. Voin ketjuttaa puolipisteillä useampiakin käskyjä. Hienoa nm!
Edit:
Tai... taitaa sittenkin tulla ongelma, jos osascripteissä on "kill", "qjackctl" ja "zyn". Mutta kahdellakin pärjään ihan hyvin:
Yksi .desktop-scripti on nyt "master", jossa ei ole killall:ia, vaan qjackctl & zynaddsubfx presetteineen ja muut ovat slave:ja joissa on killall & uusi zyn uusine presetteineen.
Nyt nopea preset-vaihto toimii, mutta master-preset on aina käynnistettävä ensin.
« Viimeksi muokattu: 03.10.18 - klo:15.49 kirjoittanut redu »
Ubuntua 98%, Winkua 2%