tizen: Add additional unit for "unified" user session 49/205149/1 submit/tizen/20190508.101016
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 19 Apr 2019 12:49:29 +0000 (14:49 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 19 Apr 2019 12:49:29 +0000 (14:49 +0200)
The unified user session is about moving user session units, managed by
systemd --user, to main systemd, where it's managed as part of newly
created user@.target.

user@.target will contain same units as previously available in user/,
with same UID and environment setup.  systemd instance is used for unit
to be able to specify UID (inherited from user@.target).

The rationale behind this work is following:

* VD requirement to remove user session support
* boot time optimization requirements, due to:

   + 'systemd --user' taking 1s its own startup that could be used for
     unit startup
   + ability to better rearrange units if these managed by one systemd
     instance

Unit installed by this commit will not be used till user login mechanism
will be changed in systemd package (via changing pam_systemd to start
user@.target, rather than user@.service).

Change-Id: If6aacb8fc40705a0b094a11f616863cf9df1d8e8

packaging/swap-manager.spec
systemd/swap_auxd@.service [new file with mode: 0644]
systemd/swap_auxd@.socket [new file with mode: 0644]
systemd/swap_memd@.service [new file with mode: 0644]
systemd/swap_memd@.socket [new file with mode: 0644]

index 00e98cf9cde5778a447ac228c4196fcadee29aa6..a5c95b4197e63eb7c09fc3c1cc848932a67e3e31 100644 (file)
@@ -166,11 +166,19 @@ install -m 0644 systemd/swap_auxd.service %{buildroot}%{_unitdir_user}/
 install -m 0644 systemd/swap_auxd.socket %{buildroot}%{_unitdir_user}/
 ln -s ../swap_auxd.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/
 
+install -m 0644 systemd/swap_auxd@.service %{buildroot}%{_unitdir}/
+install -m 0644 systemd/swap_auxd@.socket %{buildroot}%{_unitdir}/
+ln -s ../swap_auxd@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/
+
 #   swap_memd
 install -m 0644 systemd/swap_memd.service %{buildroot}%{_unitdir_user}/
 install -m 0644 systemd/swap_memd.socket %{buildroot}%{_unitdir_user}/
 ln -s ../swap_memd.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/
 
+install -m 0644 systemd/swap_memd@.service %{buildroot}%{_unitdir}/
+install -m 0644 systemd/swap_memd@.socket %{buildroot}%{_unitdir}/
+ln -s ../swap_memd@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/
+
 # tmpfiles.d
 mkdir -p %{buildroot}%{_tmpfilesdir}
 install -m 0666 systemd/swap.conf %{buildroot}%{_tmpfilesdir}/swap.conf
@@ -231,11 +239,19 @@ fi
 %{_unitdir_user}/swap_auxd.service
 %{_unitdir_user}/sockets.target.wants/swap_auxd.socket
 
+%{_unitdir}/swap_auxd@.socket
+%{_unitdir}/swap_auxd@.service
+%{_unitdir}/user-sockets@.target.wants/swap_auxd@.socket
+
 # swap_memd
 %{_unitdir_user}/swap_memd.socket
 %{_unitdir_user}/swap_memd.service
 %{_unitdir_user}/sockets.target.wants/swap_memd.socket
 
+%{_unitdir}/swap_memd@.socket
+%{_unitdir}/swap_memd@.service
+%{_unitdir}/user-sockets@.target.wants/swap_memd@.socket
+
 %{_tmpfilesdir}/swap.conf
 %{_udevrulesdir}/99-swap_dev.rules
 
diff --git a/systemd/swap_auxd@.service b/systemd/swap_auxd@.service
new file mode 100644 (file)
index 0000000..e2ede44
--- /dev/null
@@ -0,0 +1,18 @@
+[Unit]
+PartOf=userlogin@%i.target
+Description=swap_auxd service
+
+[Service]
+User=%i
+Environment=DBUS_SESSION_BUS_ADDRESS=kernel:path=/sys/fs/kdbus/%i-user/bus;unix:path=/run/user/%i/bus
+Environment=XDG_RUNTIME_DIR=/run/user/%i
+SmackProcessLabel=User
+Type=notify
+NotifyAccess=main
+
+Sockets=swap_auxd@%i.socket
+
+ExecStart=/usr/bin/swap_auxd
+
+StandardOutput=journal+console
+StandardError=journal+console
diff --git a/systemd/swap_auxd@.socket b/systemd/swap_auxd@.socket
new file mode 100644 (file)
index 0000000..6b83b86
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+PartOf=userlogin@%i.target
+DefaultDependencies=no
+After=systemd-logind.service
+Description=swap_auxd socket
+
+[Socket]
+SocketUser=%i
+ListenStream=/run/user/%i/system_share/swap/auxd.socket
+ExecStartPost=/usr/bin/chmod 0666 /run/user/%i/system_share/swap/auxd.socket
+
+Service=swap_auxd@%i.service
+
+[Install]
+WantedBy=user-sockets@.target
diff --git a/systemd/swap_memd@.service b/systemd/swap_memd@.service
new file mode 100644 (file)
index 0000000..1440eb5
--- /dev/null
@@ -0,0 +1,18 @@
+[Unit]
+PartOf=userlogin@%i.target
+Description=swap_memd service
+
+[Service]
+User=%i
+Environment=DBUS_SESSION_BUS_ADDRESS=kernel:path=/sys/fs/kdbus/%i-user/bus;unix:path=/run/user/%i/bus
+Environment=XDG_RUNTIME_DIR=/run/user/%i
+SmackProcessLabel=User
+Type=notify
+NotifyAccess=main
+
+Sockets=swap_memd@%i.socket
+
+ExecStart=/usr/bin/swap_memd
+
+StandardOutput=journal+console
+StandardError=journal+console
diff --git a/systemd/swap_memd@.socket b/systemd/swap_memd@.socket
new file mode 100644 (file)
index 0000000..e9400c3
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+PartOf=userlogin@%i.target
+DefaultDependencies=no
+After=systemd-logind.service
+Description=swap_memd socket
+
+[Socket]
+SocketUser=%i
+ListenStream=/run/user/%i/system_share/swap/memd.socket
+ExecStartPost=/usr/bin/chmod 0666 /run/user/%i/system_share/swap/memd.socket
+
+Service=swap_memd@%i.service
+
+[Install]
+WantedBy=user-sockets@.target