Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Init Lite
提交
4f2b3466
S
Startup Init Lite
项目概览
OpenHarmony
/
Startup Init Lite
大约 1 年 前同步成功
通知
3
Star
37
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Init Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4f2b3466
编写于
7月 19, 2022
作者:
M
Mupceet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
改造服务状态为int
Signed-off-by:
N
Mupceet
<
laiguizhong@huawei.com
>
上级
bae80ccc
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
89 addition
and
81 deletion
+89
-81
interfaces/innerkits/include/service_control.h
interfaces/innerkits/include/service_control.h
+3
-3
interfaces/innerkits/include/syspara/parameter.h
interfaces/innerkits/include/syspara/parameter.h
+3
-0
interfaces/innerkits/service_watcher/service_watcher.c
interfaces/innerkits/service_watcher/service_watcher.c
+4
-3
interfaces/innerkits/syspara/parameter.c
interfaces/innerkits/syspara/parameter.c
+35
-15
services/etc/init.usb.configfs.cfg
services/etc/init.usb.configfs.cfg
+2
-2
services/etc/param/ohos.para.dac
services/etc/param/ohos.para.dac
+1
-0
services/include/init_utils.h
services/include/init_utils.h
+4
-2
services/init/include/init_service.h
services/init/include/init_service.h
+1
-1
services/init/init_service_manager.c
services/init/init_service_manager.c
+25
-8
services/init/standard/init.c
services/init/standard/init.c
+1
-1
services/init/standard/init_service.c
services/init/standard/init_service.c
+5
-8
services/utils/init_utils.c
services/utils/init_utils.c
+0
-34
test/moduletest/init_test.cfg
test/moduletest/init_test.cfg
+4
-4
test/unittest/syspara/syspara_unittest.cpp
test/unittest/syspara/syspara_unittest.cpp
+1
-0
未找到文件。
interfaces/innerkits/include/service_control.h
浏览文件 @
4f2b3466
...
@@ -29,10 +29,10 @@ extern "C" {
...
@@ -29,10 +29,10 @@ extern "C" {
typedef
enum
{
typedef
enum
{
SERVICE_IDLE
=
0
,
// service add
SERVICE_IDLE
=
0
,
// service add
SERVICE_STARTING
,
// service start
SERVICE_STARTING
,
// service start
SERVICE_STARTED
,
//
service ok
SERVICE_STARTED
,
//
2 service ok running
SERVICE_READY
,
//
service ok
SERVICE_READY
,
//
3 service ok running
SERVICE_STOPPING
,
SERVICE_STOPPING
,
SERVICE_STOPPED
,
SERVICE_STOPPED
,
// 5
SERVICE_ERROR
,
SERVICE_ERROR
,
SERVICE_SUSPENDED
,
SERVICE_SUSPENDED
,
SERVICE_FREEZED
,
SERVICE_FREEZED
,
...
...
interfaces/innerkits/include/syspara/parameter.h
浏览文件 @
4f2b3466
...
@@ -154,6 +154,9 @@ int GetParameterName(uint32_t handle, char *key, uint32_t len);
...
@@ -154,6 +154,9 @@ int GetParameterName(uint32_t handle, char *key, uint32_t len);
int
GetParameterValue
(
uint32_t
handle
,
char
*
value
,
uint32_t
len
);
int
GetParameterValue
(
uint32_t
handle
,
char
*
value
,
uint32_t
len
);
long
long
GetSystemCommitId
(
void
);
long
long
GetSystemCommitId
(
void
);
int32_t
GetIntParameter
(
const
char
*
key
,
int32_t
def
);
uint32_t
GetUintParameter
(
const
char
*
key
,
uint32_t
def
);
#ifdef __cplusplus
#ifdef __cplusplus
#if __cplusplus
#if __cplusplus
}
}
...
...
interfaces/innerkits/service_watcher/service_watcher.c
浏览文件 @
4f2b3466
...
@@ -29,9 +29,10 @@
...
@@ -29,9 +29,10 @@
static
void
ServiceStateChange
(
const
char
*
key
,
const
char
*
value
,
void
*
context
)
static
void
ServiceStateChange
(
const
char
*
key
,
const
char
*
value
,
void
*
context
)
{
{
ServiceStatusChangePtr
callback
=
(
ServiceStatusChangePtr
)
context
;
ServiceStatusChangePtr
callback
=
(
ServiceStatusChangePtr
)
context
;
int
size
=
0
;
uint32_t
v
=
0
;
const
InitArgInfo
*
statusMap
=
GetServieStatusMap
(
&
size
);
int
ret
=
StringToUint
(
value
,
&
v
);
ServiceStatus
status
=
(
ServiceStatus
)
GetMapValue
(
value
,
statusMap
,
size
,
SERVICE_IDLE
);
BEGET_ERROR_CHECK
(
ret
==
0
,
return
,
"Failed to get value from %s"
,
value
);
ServiceStatus
status
=
(
ServiceStatus
)
v
;
if
(
strlen
(
key
)
>
strlen
(
STARTUP_SERVICE_CTL
))
{
if
(
strlen
(
key
)
>
strlen
(
STARTUP_SERVICE_CTL
))
{
callback
(
key
+
strlen
(
STARTUP_SERVICE_CTL
)
+
1
,
status
);
callback
(
key
+
strlen
(
STARTUP_SERVICE_CTL
)
+
1
,
status
);
}
else
{
}
else
{
...
...
interfaces/innerkits/syspara/parameter.c
浏览文件 @
4f2b3466
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "param_comm.h"
#include "param_comm.h"
#include "init_param.h"
#include "init_param.h"
#include "init_utils.h"
#include "sysparam_errno.h"
#include "sysparam_errno.h"
#include "securec.h"
#include "securec.h"
#include "beget_ext.h"
#include "beget_ext.h"
...
@@ -77,21 +78,6 @@ int GetParameter(const char *key, const char *def, char *value, uint32_t len)
...
@@ -77,21 +78,6 @@ int GetParameter(const char *key, const char *def, char *value, uint32_t len)
return
(
ret
!=
0
)
?
ret
:
strlen
(
value
);
return
(
ret
!=
0
)
?
ret
:
strlen
(
value
);
}
}
int
GetIntParameter
(
const
char
*
key
,
int
def
)
{
int
out
=
0
;
char
value
[
32
]
=
{
0
};
// 32 max for int
int
ret
=
GetParameter
(
key
,
"0"
,
value
,
sizeof
(
value
));
if
(
ret
!=
0
)
{
return
out
;
}
long
long
int
result
=
0
;
if
(
StringToLL
(
value
,
&
result
)
!=
0
)
{
return
def
;
}
return
(
int32_t
)
result
;
}
int
SetParameter
(
const
char
*
key
,
const
char
*
value
)
int
SetParameter
(
const
char
*
key
,
const
char
*
value
)
{
{
if
((
key
==
NULL
)
||
(
value
==
NULL
))
{
if
((
key
==
NULL
)
||
(
value
==
NULL
))
{
...
@@ -314,4 +300,38 @@ const char *GetBuildRootHash(void)
...
@@ -314,4 +300,38 @@ const char *GetBuildRootHash(void)
{
{
static
const
char
*
buildRootHash
=
NULL
;
static
const
char
*
buildRootHash
=
NULL
;
return
GetProperty
(
"const.ohos.buildroothash"
,
&
buildRootHash
);
return
GetProperty
(
"const.ohos.buildroothash"
,
&
buildRootHash
);
}
int32_t
GetIntParameter
(
const
char
*
key
,
int32_t
def
)
{
char
value
[
MAX_INT_LEN
]
=
{
0
};
int
ret
=
GetParameter
(
key
,
"0"
,
value
,
sizeof
(
value
));
if
(
ret
!=
0
)
{
return
def
;
}
long
long
int
result
=
0
;
if
(
StringToLL
(
value
,
&
result
)
!=
0
)
{
return
def
;
}
if
(
result
<=
INT32_MIN
&&
result
>=
INT32_MAX
)
{
return
def
;
}
return
(
int32_t
)
result
;
}
uint32_t
GetUintParameter
(
const
char
*
key
,
uint32_t
def
)
{
char
value
[
MAX_INT_LEN
]
=
{
0
};
int
ret
=
GetParameter
(
key
,
"0"
,
value
,
sizeof
(
value
));
if
(
ret
!=
0
)
{
return
def
;
}
unsigned
long
long
int
result
=
0
;
if
(
StringToULL
(
value
,
&
result
)
!=
0
)
{
return
def
;
}
if
(
result
>=
UINT32_MAX
)
{
return
def
;
}
return
(
uint32_t
)
result
;
}
}
\ No newline at end of file
services/etc/init.usb.configfs.cfg
浏览文件 @
4f2b3466
...
@@ -14,8 +14,8 @@
...
@@ -14,8 +14,8 @@
"setparam sys.usb.state ${sys.usb.config}"
"setparam sys.usb.state ${sys.usb.config}"
]
]
}, {
}, {
"name" : "param:startup.service.ctl.hdcd=
stopped
",
"name" : "param:startup.service.ctl.hdcd=
5
",
"condition" : "startup.service.ctl.hdcd=
stopped
",
"condition" : "startup.service.ctl.hdcd=
5
",
"cmds" : [
"cmds" : [
"setparam sys.usb.ffs.ready 0"
"setparam sys.usb.ffs.ready 0"
]
]
...
...
services/etc/param/ohos.para.dac
浏览文件 @
4f2b3466
...
@@ -33,3 +33,4 @@ debug.bytrace. = root:system:0775
...
@@ -33,3 +33,4 @@ debug.bytrace. = root:system:0775
persist.distributed_hardware.device_manager. = system:system:0775
persist.distributed_hardware.device_manager. = system:system:0775
bootevent. = samgr:samgr:0777
bootevent. = samgr:samgr:0777
hw_sc. = root:root:0777
hw_sc. = root:root:0777
startup.service.ctl. = root:root:0775:int
services/include/init_utils.h
浏览文件 @
4f2b3466
...
@@ -21,6 +21,8 @@
...
@@ -21,6 +21,8 @@
#include <stdbool.h>
#include <stdbool.h>
#include <unistd.h>
#include <unistd.h>
#include "beget_ext.h"
#ifdef __cplusplus
#ifdef __cplusplus
#if __cplusplus
#if __cplusplus
extern
"C"
{
extern
"C"
{
...
@@ -32,6 +34,8 @@ typedef struct {
...
@@ -32,6 +34,8 @@ typedef struct {
int
value
;
int
value
;
}
InitArgInfo
;
}
InitArgInfo
;
#define MAX_INT_LEN 20
#define HEX_BASE 16
#define BINARY_BASE 2
#define BINARY_BASE 2
#define OCTAL_BASE 8
#define OCTAL_BASE 8
#define DECIMAL_BASE 10
#define DECIMAL_BASE 10
...
@@ -72,8 +76,6 @@ void FreeStringVector(char **vector, int count);
...
@@ -72,8 +76,6 @@ void FreeStringVector(char **vector, int count);
int
InUpdaterMode
(
void
);
int
InUpdaterMode
(
void
);
int
StringReplaceChr
(
char
*
strl
,
char
oldChr
,
char
newChr
);
int
StringReplaceChr
(
char
*
strl
,
char
oldChr
,
char
newChr
);
int
GetMapValue
(
const
char
*
name
,
const
InitArgInfo
*
infos
,
int
argNum
,
int
defValue
);
const
InitArgInfo
*
GetServieStatusMap
(
int
*
size
);
uint32_t
GetRandom
(
void
);
uint32_t
GetRandom
(
void
);
void
OpenConsole
(
void
);
void
OpenConsole
(
void
);
#ifdef __cplusplus
#ifdef __cplusplus
...
...
services/init/include/init_service.h
浏览文件 @
4f2b3466
...
@@ -88,7 +88,7 @@ extern "C" {
...
@@ -88,7 +88,7 @@ extern "C" {
typedef
enum
{
typedef
enum
{
START_MODE_CONDITION
,
START_MODE_CONDITION
,
START_MODE_BOOT
,
START_MODE_BOOT
,
START_MODE_N
A
RMAL
,
START_MODE_N
O
RMAL
,
}
ServiceStartMode
;
}
ServiceStartMode
;
typedef
enum
{
typedef
enum
{
...
...
services/init/init_service_manager.c
浏览文件 @
4f2b3466
...
@@ -96,10 +96,14 @@ void DumpOneService(const Service *service)
...
@@ -96,10 +96,14 @@ void DumpOneService(const Service *service)
const
InitArgInfo
startModeMap
[]
=
{
const
InitArgInfo
startModeMap
[]
=
{
{
"condition"
,
START_MODE_CONDITION
},
{
"condition"
,
START_MODE_CONDITION
},
{
"boot"
,
START_MODE_BOOT
},
{
"boot"
,
START_MODE_BOOT
},
{
"normal"
,
START_MODE_N
A
RMAL
}
{
"normal"
,
START_MODE_N
O
RMAL
}
};
};
int
size
=
0
;
const
InitArgInfo
*
statusMap
=
GetServieStatusMap
(
&
size
);
const
static
char
*
serviceStatusMap
[]
=
{
"created"
,
"starting"
,
"running"
,
"ready"
,
"stopping"
,
"stopped"
,
"suspended"
,
"freezed"
,
"disabled"
,
"critical"
};
printf
(
"
\t
service name: [%s]
\n
"
,
service
->
name
);
printf
(
"
\t
service name: [%s]
\n
"
,
service
->
name
);
#ifdef WITH_SELINUX
#ifdef WITH_SELINUX
if
(
service
->
secon
!=
NULL
)
{
if
(
service
->
secon
!=
NULL
)
{
...
@@ -110,8 +114,8 @@ void DumpOneService(const Service *service)
...
@@ -110,8 +114,8 @@ void DumpOneService(const Service *service)
printf
(
"
\t
service crashCnt: [%d]
\n
"
,
service
->
crashCnt
);
printf
(
"
\t
service crashCnt: [%d]
\n
"
,
service
->
crashCnt
);
printf
(
"
\t
service attribute: [%u]
\n
"
,
service
->
attribute
);
printf
(
"
\t
service attribute: [%u]
\n
"
,
service
->
attribute
);
printf
(
"
\t
service importance: [%d]
\n
"
,
service
->
importance
);
printf
(
"
\t
service importance: [%d]
\n
"
,
service
->
importance
);
printf
(
"
\t
service startMode: [%s]
\n
"
,
startModeMap
[
service
->
sta
tus
].
name
);
printf
(
"
\t
service startMode: [%s]
\n
"
,
startModeMap
[
service
->
sta
rtMode
].
name
);
printf
(
"
\t
service status: [%s]
\n
"
,
s
tatusMap
[
service
->
status
].
name
);
printf
(
"
\t
service status: [%s]
\n
"
,
s
erviceStatusMap
[
service
->
status
]
);
printf
(
"
\t
service perms uID [%u]
\n
"
,
service
->
servPerm
.
uID
);
printf
(
"
\t
service perms uID [%u]
\n
"
,
service
->
servPerm
.
uID
);
DumpServiceArgs
(
"path arg"
,
&
service
->
pathArgs
);
DumpServiceArgs
(
"path arg"
,
&
service
->
pathArgs
);
DumpServiceArgs
(
"writepid file"
,
&
service
->
writePidArgs
);
DumpServiceArgs
(
"writepid file"
,
&
service
->
writePidArgs
);
...
@@ -646,12 +650,25 @@ static int GetServiceOnDemand(const cJSON *curArrItem, Service *curServ)
...
@@ -646,12 +650,25 @@ static int GetServiceOnDemand(const cJSON *curArrItem, Service *curServ)
return
SERVICE_SUCCESS
;
return
SERVICE_SUCCESS
;
}
}
static
int
GetMapValue
(
const
char
*
name
,
const
InitArgInfo
*
infos
,
int
argNum
,
int
defValue
)
{
if
((
argNum
==
0
)
||
(
infos
==
NULL
)
||
(
name
==
NULL
))
{
return
defValue
;
}
for
(
int
i
=
0
;
i
<
argNum
;
i
++
)
{
if
(
strcmp
(
infos
[
i
].
name
,
name
)
==
0
)
{
return
infos
[
i
].
value
;
}
}
return
defValue
;
}
static
int
GetServiceMode
(
Service
*
service
,
const
cJSON
*
json
)
static
int
GetServiceMode
(
Service
*
service
,
const
cJSON
*
json
)
{
{
const
InitArgInfo
startModeMap
[]
=
{
const
InitArgInfo
startModeMap
[]
=
{
{
"condition"
,
START_MODE_CONDITION
},
{
"condition"
,
START_MODE_CONDITION
},
{
"boot"
,
START_MODE_BOOT
},
{
"boot"
,
START_MODE_BOOT
},
{
"normal"
,
START_MODE_N
A
RMAL
}
{
"normal"
,
START_MODE_N
O
RMAL
}
};
};
const
InitArgInfo
endModeMap
[]
=
{
const
InitArgInfo
endModeMap
[]
=
{
{
"pre-fork"
,
END_PRE_FORK
},
{
"pre-fork"
,
END_PRE_FORK
},
...
@@ -659,12 +676,12 @@ static int GetServiceMode(Service *service, const cJSON *json)
...
@@ -659,12 +676,12 @@ static int GetServiceMode(Service *service, const cJSON *json)
{
"after-exec"
,
END_AFTER_EXEC
},
{
"after-exec"
,
END_AFTER_EXEC
},
{
"ready"
,
END_RECV_READY
}
{
"ready"
,
END_RECV_READY
}
};
};
service
->
startMode
=
START_MODE_N
A
RMAL
;
service
->
startMode
=
START_MODE_N
O
RMAL
;
service
->
endMode
=
END_AFTER_EXEC
;
service
->
endMode
=
END_AFTER_EXEC
;
char
*
value
=
cJSON_GetStringValue
(
cJSON_GetObjectItem
(
json
,
"start-mode"
));
char
*
value
=
cJSON_GetStringValue
(
cJSON_GetObjectItem
(
json
,
"start-mode"
));
if
(
value
!=
NULL
)
{
if
(
value
!=
NULL
)
{
service
->
startMode
=
GetMapValue
(
value
,
service
->
startMode
=
GetMapValue
(
value
,
(
InitArgInfo
*
)
startModeMap
,
(
int
)
ARRAY_LENGTH
(
startModeMap
),
START_MODE_N
A
RMAL
);
(
InitArgInfo
*
)
startModeMap
,
(
int
)
ARRAY_LENGTH
(
startModeMap
),
START_MODE_N
O
RMAL
);
}
}
value
=
cJSON_GetStringValue
(
cJSON_GetObjectItem
(
json
,
"end-mode"
));
value
=
cJSON_GetStringValue
(
cJSON_GetObjectItem
(
json
,
"end-mode"
));
if
(
value
!=
NULL
)
{
if
(
value
!=
NULL
)
{
...
...
services/init/standard/init.c
浏览文件 @
4f2b3466
...
@@ -273,7 +273,7 @@ static void BootStateChange(const char *content)
...
@@ -273,7 +273,7 @@ static void BootStateChange(const char *content)
return
;
return
;
}
}
if
(
strcmp
(
"post-init"
,
content
)
==
0
)
{
if
(
strcmp
(
"post-init"
,
content
)
==
0
)
{
StartAllServices
(
START_MODE_N
A
RMAL
);
StartAllServices
(
START_MODE_N
O
RMAL
);
// Destroy all hooks
// Destroy all hooks
HookMgrDestroy
(
bootStageHookMgr
);
HookMgrDestroy
(
bootStageHookMgr
);
bootStageHookMgr
=
NULL
;
bootStageHookMgr
=
NULL
;
...
...
services/init/standard/init_service.c
浏览文件 @
4f2b3466
...
@@ -36,19 +36,16 @@
...
@@ -36,19 +36,16 @@
void
NotifyServiceChange
(
Service
*
service
,
int
status
)
void
NotifyServiceChange
(
Service
*
service
,
int
status
)
{
{
int
size
=
0
;
INIT_LOGI
(
"NotifyServiceChange %s %d to %d"
,
service
->
name
,
service
->
status
,
status
);
const
InitArgInfo
*
statusMap
=
GetServieStatusMap
(
&
size
);
INIT_ERROR_CHECK
(
statusMap
!=
NULL
&&
size
>
status
,
service
->
status
=
status
;
return
,
"Service status error %d"
,
status
);
INIT_LOGI
(
"NotifyServiceChange %s %s to %s"
,
service
->
name
,
statusMap
[
service
->
status
].
name
,
statusMap
[
status
].
name
);
service
->
status
=
status
;
service
->
status
=
status
;
INIT_CHECK
(
status
!=
SERVICE_IDLE
,
return
);
INIT_CHECK
(
status
!=
SERVICE_IDLE
,
return
);
char
paramName
[
PARAM_NAME_LEN_MAX
]
=
{
0
};
char
paramName
[
PARAM_NAME_LEN_MAX
]
=
{
0
};
int
ret
=
snprintf_s
(
paramName
,
sizeof
(
paramName
),
sizeof
(
paramName
)
-
1
,
int
ret
=
snprintf_s
(
paramName
,
sizeof
(
paramName
),
sizeof
(
paramName
)
-
1
,
"%s.%s"
,
STARTUP_SERVICE_CTL
,
service
->
name
);
"%s.%s"
,
STARTUP_SERVICE_CTL
,
service
->
name
);
if
(
ret
>=
0
)
{
char
statusStr
[
MAX_INT_LEN
]
=
{
0
};
SystemWriteParam
(
paramName
,
statusMap
[
status
].
name
);
int
ret1
=
snprintf_s
(
statusStr
,
sizeof
(
statusStr
),
sizeof
(
statusStr
)
-
1
,
"%d"
,
status
);
if
(
ret
>=
0
&&
ret1
>
0
)
{
SystemWriteParam
(
paramName
,
statusStr
);
}
}
}
}
...
...
services/utils/init_utils.c
浏览文件 @
4f2b3466
...
@@ -522,40 +522,6 @@ int StringReplaceChr(char *strl, char oldChr, char newChr)
...
@@ -522,40 +522,6 @@ int StringReplaceChr(char *strl, char oldChr, char newChr)
return
0
;
return
0
;
}
}
int
GetMapValue
(
const
char
*
name
,
const
InitArgInfo
*
infos
,
int
argNum
,
int
defValue
)
{
if
((
argNum
==
0
)
||
(
infos
==
NULL
)
||
(
name
==
NULL
))
{
return
defValue
;
}
for
(
int
i
=
0
;
i
<
argNum
;
i
++
)
{
if
(
strcmp
(
infos
[
i
].
name
,
name
)
==
0
)
{
return
infos
[
i
].
value
;
}
}
return
defValue
;
}
const
static
InitArgInfo
g_servieStatusMap
[]
=
{
{
"created"
,
SERVICE_IDLE
},
{
"starting"
,
SERVICE_STARTING
},
{
"running"
,
SERVICE_STARTED
},
{
"ready"
,
SERVICE_READY
},
{
"stopping"
,
SERVICE_STOPPING
},
{
"stopped"
,
SERVICE_STOPPED
},
{
"suspended"
,
SERVICE_SUSPENDED
},
{
"freezed"
,
SERVICE_FREEZED
},
{
"disabled"
,
SERVICE_DISABLED
},
{
"critial"
,
SERVICE_CRITIAL
}
};
const
InitArgInfo
*
GetServieStatusMap
(
int
*
size
)
{
if
(
size
!=
0
)
{
*
size
=
ARRAY_LENGTH
(
g_servieStatusMap
);
}
return
g_servieStatusMap
;
}
uint32_t
GetRandom
()
uint32_t
GetRandom
()
{
{
uint32_t
ulSeed
=
0
;
uint32_t
ulSeed
=
0
;
...
...
test/moduletest/init_test.cfg
浏览文件 @
4f2b3466
...
@@ -7,15 +7,15 @@
...
@@ -7,15 +7,15 @@
]
]
},
},
{
{
"name" : "param:startup.service.ctl.group-test-stage1=
running
",
"name" : "param:startup.service.ctl.group-test-stage1=
2
",
"condition" : "startup.service.ctl.group-test-stage1=
running
",
"condition" : "startup.service.ctl.group-test-stage1=
2
",
"cmds" : [
"cmds" : [
"start group-test-stage2"
"start group-test-stage2"
]
]
},
},
{
{
"name" : "param:startup.service.ctl.group-test-stage2=
running
",
"name" : "param:startup.service.ctl.group-test-stage2=
2
",
"condition" : "startup.service.ctl.group-test-stage2=
running
",
"condition" : "startup.service.ctl.group-test-stage2=
2
",
"cmds" : [
"cmds" : [
"start group-test-stage3"
"start group-test-stage3"
]
]
...
...
test/unittest/syspara/syspara_unittest.cpp
浏览文件 @
4f2b3466
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
#include "gtest/gtest.h"
#include "gtest/gtest.h"
#include "init_param.h"
#include "init_param.h"
#include "init_utils.h"
#include "parameter.h"
#include "parameter.h"
#include "sysparam_errno.h"
#include "sysparam_errno.h"
#include "param_comm.h"
#include "param_comm.h"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录