一個簡單的守護程式
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#define ERR_EXIT(m) \
do { \
perror(m);\
exit(EXIT_FAILURE);\
}while(0)
int main(int argc, const char *argv[])
{
pid_t pid;
if((pid = fork()) < 0)
ERR_EXIT("fork");
else if(pid > 0)
exit(EXIT_SUCCESS); // 確保出現孤兒程式
setsid(); //建立一個新的會話 脫離shell的會話期
chdir("/"); //更改工作目錄
umask(0);
/*
int i;
for(i = 0; i < 3; ++i)
close(i);
open("/dev/null"); // 開啟0
dup(0); //1
dup(0); // 2
*/
// /dev/null
// 如果stdin重定向到/dev/null,那麼一旦嘗試read,立刻返回EOF
// 如果是stdout stderr,輸出全部被丟棄
int fd = open("/dev/null", O_WRONLY);
if(fd == -1)
ERR_EXIT("open");
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup3(fd, STDERR_FILENO);
close(fd);
while(1) ;
return 0;
}
相關文章
- Windows守護程式簡單示例Windows
- 接上節我們來實戰操刀一個簡單的 PHP 守護程式!PHP
- 一個短小精悍的監控/守護程式
- 守護程式
- 使用 SWOOLE 實現程式的守護(一)
- Node 程式守護
- rstatd守護程式
- gated 守護程式
- Linux 守護程式和超級守護程式(xinetd)Linux
- 運用Vue Router的程式守護修改單頁的titleVue
- 程式守護 supervisor
- 守護程式那些事
- Linux 守護程式Linux
- [單刷APUE系列]第十三章——守護程式
- 問一個守護執行緒問題?執行緒
- 一個簡單的解密程式 (轉)解密
- 建立一個簡單的小程式
- PHP 實現守護程式PHP
- Golang 程式守護 SupervisorGolang
- PHP 編寫守護程式PHP
- RedHat linux 9守護程式一覽(轉)RedhatLinux
- Linux下的守護程式分析Linux
- Go的第一個Hello程式 簡簡單單 - 快快樂樂Go
- 發一個自己寫的簡單32位遊戲保護遊戲
- Python編寫守護程式程式Python
- 一個簡單的反射連線程式反射線程
- 一個簡單的字串查詢程式字串
- 使用 swoole 實現程式的守護(三)
- 使用 SWOOLE 實現程式的守護(二)
- Linux守護程式的啟動方法Linux
- shell 指令碼實現的守護程式指令碼
- 守護程式的概念和建立實驗
- Linux 守護程式的啟動方法Linux
- Linux守護程式及SystemdLinux
- 一個簡單的keyfile保護的破解 (3千字)
- 7個策略及簡單的防護方法
- 一個簡單的英漢詞典小程式
- 一個簡單的python爬蟲程式Python爬蟲