diff options
author | Markus Pargmann <mpa@pengutronix.de> | 2015-02-10 13:55:37 +0100 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2015-02-12 17:16:14 +0100 |
commit | 2b43451fdc21698a46da04033e2bdc12c309db60 (patch) | |
tree | 4813741416db55ad260bc2e928f6e25c7c8bb2e9 | |
parent | 074ef5b43965d549d2c4cf2c978371494828258c (diff) | |
download | kmsfbwrap-2b43451fdc21698a46da04033e2bdc12c309db60.tar.gz kmsfbwrap-2b43451fdc21698a46da04033e2bdc12c309db60.tar.xz |
Add init support
It is useful to start kmsfb-manage as init process to display a image as
early as possible. kmsfb-manage forks itself first and starts /sbin/init
from the pid 1 process.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r-- | src/kmsfb-manage.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kmsfb-manage.c b/src/kmsfb-manage.c index 0edecf7..70559a2 100644 --- a/src/kmsfb-manage.c +++ b/src/kmsfb-manage.c @@ -1285,9 +1285,22 @@ int main(int argc, char *argv[]) struct drm_resource *res; int err; char **parse_args; + pid_t kmsfbpid; char *cmdline; char *cmdlinev[MAX_ARGS]; + kmsfbpid = getpid(); + if (kmsfbpid == 1) { + pid_t pid; + + pid = fork(); + if (pid > 0) { + printf("kmsfb-manage forking init\n"); + execl("/sbin/init", "/sbin/init", NULL); + exit(1); + } + } + if (argc <= 1) { int f; int ret; |