[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kindprozess in neuer Session starten



Hallo,

On 2019-09-19 22:49, ternaryd wrote:

Nein. Das doppelte fork ist dazu da, um das
controlling terminal vom parent process los zu
werden.

Das übernimmt bei der von mir benutzten Befehlskombination bereits das Programm openvt aus dem Paket kbd. openvt startet per fork() einen Kindprozess, in welchem per setsid() eine neue Sitzung gestartet wird, ein neues, bisher unverwendetes Terminal geöffnet wird, per ioctl() das kontrollierende Terminal auf das neue gesetzt wird und schließlich per exec() ein Programm gestartet wird, das als Argument an openvt übergeben wurde. Bei meinen Tests sieht der Befehl zum Beispiel so aus: 'openvt -s -v -w -- login -f cpleger'

/bin/login ist traditionelles Unix.

Schon, aber es durchläuft ja die PAM-Module und zu denen gehört auch pam_systemd, welches mit systemd-logind kommuniziert. loginctl ist ein CLI-Programm, mit dem man sich Informationen des systemd-logind anzeigen lassen kann.

Und XDG_SESSION ist ein Symbol von open
desktop, wenn ich mich nicht täusche.

XDG_SESSION_ID wird von pam_systemd gesetzt.

Mir ist die Absicht nicht klar. Wenn ich so ein
Programm starte, hab ich doch schon Zugang;
warum noch ein login??

Auch wenn ich momentan auf Text-Terminals teste, ist letzlich das Ziel, von einem Skript aus, das als kontrollierendes Terminal dasjenige hat, auf dem Xorg läuft, ein neues Terminal zu öffnen und darauf eine Wayland-Sitzung zu starten.

Viele Grüße
  Christoph


Reply to: