linux 守護程式

2021-05-05 06:19:12 字數 1623 閱讀 8441

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define proc_name     "mymail"

#define exec_name     "/root/dev_mobile/source/mymail/src/mymail"

#define   lockfile "/root/mytest.lock"

#define  debug

int daemon_init()

ret=flock(lock_fd,lock_ex|lock_nb);//因為下面關閉了,所以起不到作用

if(ret<0)

if (fork() != 0)

exit(0);

if (setsid() < 0)

return -1;

act.sa_handler = sig_ign;

sigemptyset(&act.sa_mask);

act.sa_flags = 0;

sigaction(sighup, &act, 0);

if (fork() != 0)

exit(0);

chdir("/");

umask(0);

setpgrp();

maxfd = sysconf(_sc_open_max);

for (i = 0; i < maxfd; i++)

//close(i);

;sprintf(buf,"%6d/n",getpid());

write(lock_fd,buf,strlen(buf));   

open("/dev/null", o_rdwr);

dup(0);

dup(1);

dup(2);

return 0;

}static int file2str(char *filename, char *ret, int cap)

static int parse_proc_status(char*p_name,char *s)

static int proc_exist(char *p_name)

while ((entry = readdir(dir)) != null) }}

closedir(dir);

return -1;

}static int proc_fork(char*p_path)

;pid_t pid;

pid=fork();

if(pid==0)

if(pid>0)

printf("fork  succeed:/n");

}void handler()

int main(int argc, char **argv)

#endif

signal(sigalrm,handler);

alarm(15);

while (1)

}網上的unix比較多,前幾天做了乙個linux下的,監控某一程式,如果不存在,就啟動。

Linux程式守護指令碼

不廢話,直接上指令碼,注釋的下發語句需要按需替換 usr bin env bash path bin sbin usr bin usr sbin usr local bin usr local sbin bin export path 待替換的程序名 pro name caddy echo 異想家守...

linux程式守護程序(shell)

使用shell每秒檢測一次程式是否在執行,如果沒有執行則自動啟動程式 bin bash 配置檔案路徑 configfile 1 config settings.ini slash restartlog daemon shopt s expand aliases alias datetime date...

Linux守護程序

linux下守護程序一般分為5步,但是實際上只有前兩步是關鍵。第一步 建立子程序,關閉父程序。使用fork 建立,父程序exit 退出。關鍵第二步 建立新的會話id,setsid 作用是使子程序擺脫原有的會話 程序組 終端的控制,其實,linux下每個程序都是由一號程序建立而來的,每個程序都是1號程...