/********************************************************************************
|
* 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 <guowenxue@gmail.com>
|
* ChangeLog: 1, Release initial version on "11/06/2018 09:21:33 PM"
|
*
|
********************************************************************************/
|
|
#ifndef __CP_PROC_H
|
#define __CP_PROC_H
|
|
#include <signal.h>
|
|
#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
|