From: INSUN PYO Date: Tue, 7 Aug 2018 05:55:37 +0000 (+0900) Subject: Move bind mount logic to bind-user-contens.service X-Git-Tag: submit/tizen/20180816.083146~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=84a01b8ced1c95a4a17ee65dff6db38564d70526;p=platform%2Fcore%2Fsystem%2Fsession-utils.git Move bind mount logic to bind-user-contens.service 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 Change-Id: If85be9f8357a502c6d2d946e275912a01c9e271b --- diff --git a/packaging/session-utils.spec b/packaging/session-utils.spec index f886830..e080e89 100644 --- a/packaging/session-utils.spec +++ b/packaging/session-utils.spec @@ -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 diff --git a/src/systemd-user-helper/systemd-user-helper.c b/src/systemd-user-helper/systemd-user-helper.c index f3686e0..877251e 100644 --- a/src/systemd-user-helper/systemd-user-helper.c +++ b/src/systemd-user-helper/systemd-user-helper.c @@ -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 index 0000000..b1417e4 --- /dev/null +++ b/units/bind-user-contents.service @@ -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