Move bind mount logic to bind-user-contens.service 72/186072/1
authorINSUN PYO <insun.pyo@samsung.com>
Tue, 7 Aug 2018 05:55:37 +0000 (14:55 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Tue, 7 Aug 2018 06:03:55 +0000 (15:03 +0900)
Bind mount point
============================================================
TZ_USER_CONTENT(/opt/usr/home/owner/media) to /opt/usr/media
TZ_USER_APP(/opt/usr/home/owner/apps_rw) to /opt/usr/apps
============================================================

Signed-off-by: INSUN PYO <insun.pyo@samsung.com>
Change-Id: If85be9f8357a502c6d2d946e275912a01c9e271b

packaging/session-utils.spec
src/systemd-user-helper/systemd-user-helper.c
units/bind-user-contents.service [new file with mode: 0644]

index f8868300fd9eb9c6ebb7beb20a5dc60fa0936018..e080e89c3b50746bca595da382593c390737793a 100644 (file)
@@ -31,11 +31,17 @@ rm -rf %{buildroot}
 mkdir -p %{buildroot}%{_unitdir}/user@.service.d
 install -m 644 units/session-utils.conf %{buildroot}%{_unitdir}/user@.service.d/
 
+mkdir -p %{buildroot}%{_userunitdir}/basic.target.wants
+install -m 644 units/bind-user-contents.service %{buildroot}%{_userunitdir}/
+ln -sf ../bind-user-contents.service %{buildroot}%{_userunitdir}/basic.target.wants/bind-user-contents.service
+
 %files
 %license LICENSE.Apache-2.0
 %manifest session-utils.manifest
 %{_bindir}/systemd-user-helper
 %{_unitdir}/user@.service.d/session-utils.conf
+%{_userunitdir}/bind-user-contents.service
+%{_userunitdir}/basic.target.wants/bind-user-contents.service
 
 %post
 # How to test session-utils rpms
index f3686e09de0164c3bb6e27e0f67de5130bb340db..877251e51c4006d7d94b133093bb871cd5f49572 100644 (file)
@@ -287,6 +287,8 @@ int main(int argc, char *argv[])
                return stop_process(username);
        else if (strcmp(operation, "start") == 0)
                ; /* do main code */
+       else if (strcmp(operation, "bind-user-contents") == 0)
+               return normal_user_postprocess(username);
        else {
                fprintf(stderr, "option is invalid(%s)\n", operation);
                return -2;
@@ -313,13 +315,6 @@ int main(int argc, char *argv[])
        /* sync-style since there is no need to process other signal */
        wait_condition();
 
-       /* post-processing */
-       r = normal_user_postprocess(username);
-       if (r < 0) {
-               fprintf(stderr, "normal user postprocess failed\n");
-               return r;
-       }
-
        if (support_container) {
                r = container_postprocess(username);
                if (r < 0) {
diff --git a/units/bind-user-contents.service b/units/bind-user-contents.service
new file mode 100644 (file)
index 0000000..b1417e4
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=Bind Mount user contents
+DefaultDependencies=no
+Wants=wait-mount@opt-usr.service
+After=wait-mount@opt-usr.service
+Before=basic.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/systemd-user-helper bind-user-contents %u