diff --git a/modules/sysevent/event_reporter.cpp b/modules/sysevent/event_reporter.cpp index 687e729581d506ce04f14e367fa69c469e1ce944..87b9c3fb5d81793c8541f0ccfa23841897164249 100644 --- a/modules/sysevent/event_reporter.cpp +++ b/modules/sysevent/event_reporter.cpp @@ -36,8 +36,18 @@ void ProcessMgrRemoveApp(const char* processName, int pid, int uid, int status) pname = std::string(processName, strlen(processName)); } - HiSysEventWrite(HiSysEvent::Domain::STARTUP, KEY_PROCESS_EXIT, HiSysEvent::EventType::BEHAVIOR, - KEY_NAME, pname, KEY_PID, pid, KEY_UID, uid, KEY_STATUS, status); + int signal = 0; + if (WIFSIGNALED(status)) { + signal = WTERMSIG(status); + } + if (WIFEXITED(status)) { + signal = WEXITSTATUS(status); + } + + if (signal != 0) { + HiSysEventWrite(HiSysEvent::Domain::STARTUP, KEY_PROCESS_EXIT, HiSysEvent::EventType::BEHAVIOR, + KEY_NAME, pname, KEY_PID, pid, KEY_UID, uid, KEY_STATUS, status); + } } } // namespace system } // namespace OHOS diff --git a/startup_events.yaml b/startup_events.yaml index 4bf186289f4303624350b90cf128d98d3de4bdb0..ea2a1009eb300fda1ba374184cc6f4a989862e05 100644 --- a/startup_events.yaml +++ b/startup_events.yaml @@ -11,7 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -domain: STARTUP +domain: APPSPAWN PROCESS_EXIT: __BASE: {type: BEHAVIOR, level: CRITICAL, tag: Stability, desc: process exit reason}