summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
63c180a)
Start the afm-user-session@%i.target from the
user session after pam_sytemd session started.
Change-Id: I5aeb8f01426b3cee2cbfad6ba30ecf37fe21abca
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
--- /dev/null
+[Unit]
+Description=Initiate afm-system-setup
+Before=weston.service
+[Service]
+Type=one-shot
+ExecStart=-/bin/sh -c "/bin/mkdir -m 755 -Z '*' /run/platform"
+ExecStart=-/bin/sh -c "/bin/mkdir -m 755 -Z '*' /run/platform/display"
+ExecStart=-/bin/sh -c "/bin/mkdir -m 755 -Z '*' /run/platform/apis"
+ExecStart=-/bin/sh -c "/bin/mkdir -m 755 -Z '*' /run/platform/apis/ws"
--- /dev/null
+[Unit]
+Description=Initiate afm-user-setup %i
+After=user@%i.service
+[Service]
+Type=one-shot
+ExecStart=-/bin/sh -c "/bin/mkdir -Z '*' /run/user/%i && /bin/chown %i:%i /run/user/%i"
+ExecStart=-/bin/sh -c "/bin/mkdir -Z '*' /run/user/%i/apis && /bin/chown %i:%i /run/user/%i/apis"
+ExecStart=-/bin/sh -c "/bin/mkdir -Z '*' /run/user/%i/apis/ws && /bin/chown %i:%i /run/user/%i/apis/ws"
--- /dev/null
+[Unit]
+Description=Application Framework Master, User session setup
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/afm-user-session
+
+[Install]
+WantedBy=default.target
+
install(TARGETS afm-binding LIBRARY DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/afm)
add_executable(afm-user-session afm-user-session.c)
install(TARGETS afm-binding LIBRARY DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/afm)
add_executable(afm-user-session afm-user-session.c)
- install(TARGETS afm-user-session DESTINATION ${CMAKE_INSTALL_BINDIR})
+ install(TARGETS afm-user-session DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS SETUID OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
else()
MESSAGE(STATUS "Not creating daemons")
endif()
else()
MESSAGE(STATUS "Not creating daemons")
endif()
limitations under the License.
*/
limitations under the License.
*/
+#include <stdio.h>
+#include <unistd.h>
#include <systemd/sd-daemon.h>
#include <systemd/sd-daemon.h>
+extern char **environ;
+
- sigset_t ass, bss;
-
- sigemptyset(&ass);
- sigaddset(&ass, SIGTERM);
-
- sigfillset(&bss);
- sigdelset(&bss, SIGTERM);
+ char buffer[100];
+ char *args[] = { "/bin/systemctl", "--wait", "start", buffer, 0 };
+ sprintf(buffer, "afm-user-session@%d.target", (int)getuid());
- sigprocmask(SIG_SETMASK, &bss, 0);
- sigwaitinfo(&ass, 0);
-
- return 0;
+ execve(args[0], args, environ);
+ return 1;