Re: [HS] systemd service utilisateur
On Tue, Oct 27, 2015 at 01:19:08PM +0100, Sébastien NOBILI wrote:
> Le mercredi 21 octobre 2015 à 18:20, Alexandre Hoïde a écrit :
> > On Wed, Oct 21, 2015 at 03:54:49PM +0900, Charles Plessy wrote:
> > > de mon côté je tarde à répondre car il me semblait que systemd permettait
> > > d'isoler les utilisateurs les uns des autres (dans des « slices » ?), y compris
> > > au niveau des fichiers temporaires, mais je peine à retrouver où j'aurais pu
> > > lire une chose pareille...
> >
> > Si je comprends bien¹ (mais rien n'est moins sûr), le « contexte »
> > user.slice est invoqué/utilisé en arrière plan par systemd, pour les
> > processus utilisateurs (tel que mon usrtmp.service, par exemple).
> > Mais au niveau où je l'exploite, il me semble que ce devrait être
> > « transparent ».
>
> J'ai compris son fonctionnement comme toi. Je n'ai pas encore lu trop de doc sur
> le sujet et ce que j'en ai compris est surtout empirique. Si ton service est
> lancé à l'ouverture de session par l'utilisateur (là je suppose puisque je n'ai
> pas lu la doc), alors l'isolation a déjà eu lieu et les différentes commandes
> lancées se trouvent dans le « slice ».
>
> On voit tout ça à l'œuvre lorsqu'on ouvre une session (graphique ou non), des
> messages apparaissent sur les consoles (mais c'est peut-être parce que j'ai
> passé Systemd en debug), mais également lorsque des tâches cron sont lancées.
>
> D'ailleurs ce second point me fait penser à un cas que tu devrais vérifier.
> Est-ce que ton service utilisateur est lancé également lors du démarrage de
> tâches cron d'un des utilisateurs qui l'aurait activé ?
Oui, hé hé : Voilà un empirisme exigeant ! Mon intuition bordélique
me dirait que cron n'est pas exécuté avec l'identité des contrab's des
utilisateurs [et donc, logind ne verrait pas de connexion qui déclencherait
le default.target de l'utilisateur]… mais la question valait bien un
test (après avoir « enabled » le usrtmp.service pour l'utilisateur
« fictif » et déconnecté fictif partout) :
$ sudo -u fictif contrab -l
10 18 27 10 * sleep 5 && [ -d /tmp/fictif_usrtmp ] && touch /tmp/test-cron-systemd-oui || touch /tmp/test-cron-systemd-non
et à 18h12 :
$ ls /tmp/test-cron-systemd-*
/tmp/test-cron-systemd-non
et en effet, journalctl ne montre aucun « starting » correspondant (ce
qui ne veut pas encore dire que mon intuition est la bonne… faudrait que
je RTFM cron comme il faut ^^).
C'est sympa d'être venu prêter main forte à Charles pour me
démonologuer. Merci Sébastien.
--
___________________
| $ post_tenebras ↲ | waouh !
| GNU \ / | /
| -- * -- | o
| $ who ↲ / \ |_-- ~_|
| Alexandre Hoïde | _/| |
-------------------
Reply to: