13 #include "vip-process.h"
15 #define TIZEN_DEBUG_MODE_FILE "/opt/etc/.debugmode"
16 #define DUMP_PATH "/usr/bin/all_log_dump.sh"
17 #define REBOOT_PATH "/usr/sbin/reboot"
19 static int check_debugenable(void)
21 if (access(TIZEN_DEBUG_MODE_FILE, F_OK) == 0)
27 static int run_exec(char **argv)
43 if (execv(argv[0], argv) == -1) {
44 strerror_r(errno, buf, sizeof(buf));
45 _E("Error execv: %s.\n", buf);
51 if (waitpid(pid, &status, 0) == -1) {
61 int main(int argc, char *argv[])
64 char *dumpargv[3] = {DUMP_PATH, NULL, NULL};
65 char *rebootargv[4] = {REBOOT_PATH, "silent", NULL, NULL};
68 dir = opendir(VIP_CGROUP);
70 _E("doesn't support cgroup release agent");
75 _E("call release agent : [%d:%s]\n", argc, argv[1]);
77 /* check previous process */
78 if (access(CHECK_RELEASE_PROGRESS, F_OK) == 0)
82 checkfd = creat(CHECK_RELEASE_PROGRESS, 0640);
84 _E("fail to make %s file\n", CHECK_RELEASE_PROGRESS);
88 /* unmount cgroup for preventing launching another release-agent */
89 _E("systemd service stop");
90 umount2("/sys/fs/cgroup", MNT_FORCE |MNT_DETACH);
92 /* check debug level */
93 if (check_debugenable())
98 if (unlink(CHECK_RELEASE_PROGRESS) < 0)
99 _E("fail to remove %s file\n", CHECK_RELEASE_PROGRESS);
105 run_exec(rebootargv);