/******************************************************************************** * Copyright: (C) 2018 LingYun IoT System Studio * All rights reserved. * * Filename: proc.h * Description: This head file is for Linux process API * * Version: 1.0.0(11/06/2018~) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "11/06/2018 09:21:33 PM" * ********************************************************************************/ #ifndef __CP_PROC_H #define __CP_PROC_H #include #define PID_ASCII_SIZE 11 typedef struct _st_sigproc { int signal; unsigned stop; /* 0: Not term 1: Stop */ } st_sigproc; /* global variable for process or thread to exit */ extern st_sigproc g_signal; /* install signal handler */ extern void install_proc_signal(void); /* record process PID into $pid_file for check_daemon_running() to check program running or not */ extern int record_daemon_pid(const char *pid_file); /* check program already running or not * 1: The daemon program alread running 0: Not running */ extern int check_daemon_running(const char *pid_file); /* set program running as daemon */ extern int set_daemon_running(const char *pid_file); /* create a system command and excute it */ extern void exec_system_cmd(const char *format, ...); /* create and start a thread to excute function pointed by $thread_workbody */ typedef void *(thread_function) (void *thread_arg); extern int thread_start(pthread_t * thread_id, thread_function * thread_workbody, void *thread_arg); #endif