mirror of
https://gitee.com/openharmony/startup_init
synced 2024-10-07 06:03:32 +00:00
Description:reset uevnetd timeout and wait bootcomplete
Feature or Bugfix:Bugfix Binary Source: No Signed-off-by: cat <chenjinxiang3@huawei.com>
This commit is contained in:
parent
638fe6caf6
commit
56ca23636d
@ -46,6 +46,7 @@ if (defined(ohos_lite)) {
|
||||
|
||||
deps = service_ueventd_deps
|
||||
deps += [ "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared" ]
|
||||
deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ]
|
||||
}
|
||||
copy("ueventd.config") {
|
||||
sources = [ "etc/ueventd_l1.config" ]
|
||||
@ -117,6 +118,7 @@ if (defined(ohos_lite)) {
|
||||
external_deps += [ "bounds_checking_function:libsec_static" ]
|
||||
cflags = []
|
||||
deps += [ "//base/startup/init/services/param/base:param_base" ]
|
||||
deps += [ "//base/startup/init/interfaces/innerkits:libbegetutil" ]
|
||||
if (build_selinux) {
|
||||
external_deps += [ "selinux_adapter:librestorecon" ]
|
||||
cflags += [ "-DWITH_SELINUX" ]
|
||||
|
@ -66,7 +66,7 @@ typedef enum SUBYSTEM {
|
||||
} SUBSYSTEMTYPE;
|
||||
|
||||
#define CMDLINE_VALUE_LEN_MAX 512
|
||||
#define UEVENTD_POLL_TIME 30000
|
||||
#define UEVENTD_POLL_TIME (5 * 60 * 1000)
|
||||
#define UEVENTD_FLAG "/dev/.ueventd_trigger_done"
|
||||
|
||||
extern char bootDevice[CMDLINE_VALUE_LEN_MAX];
|
||||
|
@ -23,6 +23,27 @@
|
||||
#define INIT_LOG_TAG "ueventd"
|
||||
#include "init_log.h"
|
||||
#include "init_socket.h"
|
||||
#include "parameter.h"
|
||||
|
||||
static bool IsComplete()
|
||||
{
|
||||
static bool complete = false;
|
||||
if (complete) {
|
||||
return true;
|
||||
}
|
||||
char enable[8] = {0};
|
||||
int ret = GetParameter("bootevent.boot.completed", "", enable, sizeof(enable));
|
||||
if (ret != 0) {
|
||||
INIT_LOGE("Failed to get param value");
|
||||
return false;
|
||||
}
|
||||
if (strcmp(enable, "true") == 0) {
|
||||
INIT_LOGI("boot completed");
|
||||
complete = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void PollUeventdSocketTimeout(int ueventSockFd, bool ondemand)
|
||||
{
|
||||
@ -36,8 +57,11 @@ static void PollUeventdSocketTimeout(int ueventSockFd, bool ondemand)
|
||||
pfd.revents = 0;
|
||||
ret = poll(&pfd, 1, timeout);
|
||||
if (ret == 0) {
|
||||
INIT_LOGI("poll ueventd socket timeout, ueventd exit");
|
||||
return;
|
||||
if (IsComplete()) {
|
||||
INIT_LOGI("poll ueventd socket timeout, ueventd exit");
|
||||
return;
|
||||
}
|
||||
INIT_LOGI("poll ueventd socket timeout, but init not complete");
|
||||
} else if (ret < 0) {
|
||||
INIT_LOGE("Failed to poll ueventd socket!");
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user