- Lähtökohta
- Olen asentanut
notification-daemon
-paketin. Minulla on komentojonotiedosto, joka ajaarhythmbox-client
-ohjelman--print-playing-format
-parametrilla, joka tulostaa muuttujaan tallennettavaksiRytmilaatikko-musiikkisoittimen
suoritushetkellä soittaman kappaleen nimen. Komentoriviltä suoritettuna komentojonotiedosto tulostaa kappaleen nimen muuttujaan tarkoittamallani tavalla. Olen asettanut komentojonotiedostoncrontab
-tiedostossani suoritettavaksi kerran minuutissa. - Ongelma
Cronin
suorittaessa komentojonotiedostoni kappaleen nimi ei tulostu muuttujaan. Haluan sen tulostuvan muuttujaan samalla tavalla kuin komentoriviltä suoritettaessa.- Ongelman syy
- Rytmilaatikko vaatii toimiakseen, että
DBUS_SESSION_BUS_ADDRESS
-niminen muuttuja on asetettu. Cronin suorittaessa komentojonotiedostoani muuttujaa ei kuitenkaan ole asetettu. - Ratkaisu
- Teen komentojonotiedoston, joka lukee käynnissä olevan rhythmbox-client -prosessin näkemän DBUS_SESSION_BUS_ADDRESS -muuttujan arvon ja ajaa uuden rhythmbox-clientin halutuilla parametreilla.
#!/bin/sh user=`whoami` pid=`pgrep -u $user notification-da | cut -d' ' -f 1` # find DBUS session bus for this session DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \ /proc/$pid/environ |sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'` # if it was successfull, then we either print it, # or export it or whatever, if we want if [ "x$DBUS_SESSION_BUS_ADDRESS" != "x" ]; then export DBUS_SESSION_BUS_ADDRESS # and we start using rhythmbox-client rhythmbox-client --no-start --print-playing-format "%aa: %tt" fi
Lataa
rhythmbox-print-playing
(530 tavun komentojonotiedosto)Tallennan komentojonotiedoston tiedostonimellä rhythmbox-print-playing kotihakemistossani olevaan
bin
-alihakemistoon, minkä jälkeen muutan sen oikeuksiachmod +x ~/bin/rhythmbox-print-playing
-komennolla niin, että voin suorittaa sen. Sitten muutan Lähtökohta-otsikon alla mainitsemaani, alun perin rhythmbox-clientia suoraan kutsunutta komentojonotiedostoa niin, että rhythmbox-clientin sijaan se suorittaa nyt rhythmbox-print-playing -tiedostoni. Sen jälkeen parhaillaan soiva kappale tulostuu komentojonossa muuttujaan myös silloin, kun komentojonon suoritus tapahtuu cronin tekemänä. - Huomautus
- Mikään löytämistäni valmiista komentojonotiedostoista (esimerkki 1, 2) ei toiminut sellaisenaan. Yllä oleva komentojonotiedosto on niiden perusteella tekemäni oma sovellus.
Comments
2 responses to “[Ratkaisu] Cronin suorittama rhythmbox-client –print-playing-format ei toimi”
[…] parametreineen. Cron-suoritus lukisi komentoriviprofiilini ja lisäksi selvittäisi DBUS_SESSION_BUS_ADDRESS -muuttujan arvon ennen kuin suorittaisi sille komentorivillä annetun komentojonotiedoston […]
[…] (PATH-muuttuja) joukkoon komentoriviprofiilissani. Olen tallentanut bin-hakemistoon rhythmbox-print-playing -komentojonotiedoston ja todennut sen […]