Re: Apropos el cron d'usuari ...
On Thu, Feb 16, 2023 at 09:33:35PM +0100, Lluís Gras wrote:
> Missatge de Alex Muntada del dia dl., 13 de febr. 2023 a
> les 21:43:
>
> > Hola, Lluís:
> >
> > > Entenc que es un tema de l'entorn del cron de l'usuari, però
> > > malgrat potinejar al respecte no he trobat com apedaçar-ho.
> >
> > Compte perquè, si no vaig errat, les ordres que s'executen des
> > del cron no veuen l'entorn habitual de l'usuari, és a dir, que el
> > shell que s'executa no té el mateix entorn que el que tindries en
> > un terminal o consola.
> >
>
> Si si, entenc que les coses van per aquí, però de moment, tots els intents
> han estat infructuosos.
>
> [...]
>
> > Em sembla recordar que una estratègia era executar l'ordre que
> > vols dins un bash que sí llegeixi l'entorn, e.g.
> >
> > 40 21 * * * env
> > 41 21 * * * bash -l -c "env"
> >
> > Veuràs que donen resultats diferents.
Jo n'afegiria un més:
# m h dom mon dow command
* * * * * env > /tmp/env0
* * * * * sh -c "env > /tmp/env1"
* * * * * sh -l -c "env > /tmp/env2"
I, clar directament executar directament "env > /tmp/env3"
Veuràs que tots donen entorn distintes. El motiu és que els fitxers que
carreguen no son els mateixos en cada cas.
Amb aquests 4 exemples de variables d'entorns ja tens per a fer les proves que
necessites...
Per a netejar les variables d'entorn actual i carregar les d'un fitxer es pot
fer així (segur que hi ha formes més maques):
| #!/usr/bin/env sh
| env -i sh -c "set -a ; source /tmp/env0 ; set +a; env"
Aquest exemple mostra les variables que ha carregat (hauria de ser quasi
exactament el que diu a /etc/env0). Si canvies el darrer 'env' per
'/usr/bin/xtrlock' aniras veient en quins dels fitxers /tmp/envX funciona i en
quins no. I ja experimentant manipulant els fitxers d'exemple hauries d'arribar
a trobar les variables que necessites.
Altra forma podria ser indagant amb strace o similar, però crec que és massa
complexe pel cas que se t'ha presentat.
I fotre una ullada al manual sovint també ajuda, però no deixis mai que 1 minut
de llegir el manual et privi d'hores de diversió :) [Secció WARNING, per
exemple]
Una abraçada. Salut!
PS: xtrlock.c:122: if (getenv("WAYLAND_DISPLAY"))
--
Antoni Villalonga
https://friki.cat/
Reply to: