Loading init/README.md +6 −0 Original line number Original line Diff line number Diff line Loading @@ -784,6 +784,12 @@ affected. Debugging init Debugging init -------------- -------------- When a service starts from init, it may fail to `execv()` the service. This is not typical, and may point to an error happening in the linker as the new service is started. The linker in Android prints its logs to `logd` and `stderr`, so they are visible in `logcat`. If the error is encountered before it is possible to access `logcat`, the `stdio_to_kmsg` service option may be used to direct the logs that the linker prints to `stderr` to `kmsg`, where they can be read via a serial port. Launching init services without init is not recommended as init sets up a significant amount of Launching init services without init is not recommended as init sets up a significant amount of environment (user, groups, security label, capabilities, etc) that is hard to replicate manually. environment (user, groups, security label, capabilities, etc) that is hard to replicate manually. Loading init/service.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -490,7 +490,8 @@ Result<void> Service::Start() { SetProcessAttributesAndCaps(); SetProcessAttributesAndCaps(); if (!ExpandArgsAndExecv(args_, sigstop_)) { if (!ExpandArgsAndExecv(args_, sigstop_)) { PLOG(ERROR) << "cannot execve('" << args_[0] << "')"; PLOG(ERROR) << "cannot execv('" << args_[0] << "'). See the 'Debugging init' section of init's README.md for tips"; } } _exit(127); _exit(127); Loading Loading
init/README.md +6 −0 Original line number Original line Diff line number Diff line Loading @@ -784,6 +784,12 @@ affected. Debugging init Debugging init -------------- -------------- When a service starts from init, it may fail to `execv()` the service. This is not typical, and may point to an error happening in the linker as the new service is started. The linker in Android prints its logs to `logd` and `stderr`, so they are visible in `logcat`. If the error is encountered before it is possible to access `logcat`, the `stdio_to_kmsg` service option may be used to direct the logs that the linker prints to `stderr` to `kmsg`, where they can be read via a serial port. Launching init services without init is not recommended as init sets up a significant amount of Launching init services without init is not recommended as init sets up a significant amount of environment (user, groups, security label, capabilities, etc) that is hard to replicate manually. environment (user, groups, security label, capabilities, etc) that is hard to replicate manually. Loading
init/service.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -490,7 +490,8 @@ Result<void> Service::Start() { SetProcessAttributesAndCaps(); SetProcessAttributesAndCaps(); if (!ExpandArgsAndExecv(args_, sigstop_)) { if (!ExpandArgsAndExecv(args_, sigstop_)) { PLOG(ERROR) << "cannot execve('" << args_[0] << "')"; PLOG(ERROR) << "cannot execv('" << args_[0] << "'). See the 'Debugging init' section of init's README.md for tips"; } } _exit(127); _exit(127); Loading