Hallo, On 2019-09-19 18:49, ternaryd wrote:
On Thu, 19 Sep 2019 15:15:02 +0200 Christoph Pleger <christoph.pleger@cs.uni-dortmund.de> wrote:Weiß jemand, ob und wie ein Kindprozess in einer komplett neuen Sitzung bzgl. pam_systemd gestartet werden kann?Manchmal nennt man das "daemonize". das hat mit einem doppelten fork() und setsid() zu tun. Dafür gibt es verschiedene Kochrezepte im Internet. Von pam_systemd hab ich aber keine Ahnung...
Den doppelten fork() braucht man laut den Anleitungen, die ich gefunden habe, wohl wirklich nur für Daemons, die keinen Zugriff auf ein Terminal bekommen sollen. Genau das möchte ich aber gerade nicht haben, sondern ich möchte Zugriff haben auf das virtuelle Terminal, in dem ein expliziter Aufruf von /bin/login die Shell gestartet hat. Letztere soll sich dann so verhalten, als ob ich mich gerade auf einem Terminal normal eingeloggt hätte, was sie aber momentan nicht tut, weil pam_systemd keine neue Sitzung starten will. Das äußerst sich z.B. dadurch, dass in der Kind-Shell ein 'loginctl session-status' in der ersten Zeile dieselbe Session-ID anzeigt wie derselbe Befehl in der Eltern-Shell und dass entsprechend in der KInd-Shell die Umgebungsvariable XDG_SESSION_ID nicht gesetzt wird.
Viele Grüße Christoph Pleger