1. 程式人生 > >linux 編寫守護程序例子 (Daemon)

linux 編寫守護程序例子 (Daemon)

例子如下

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>  //fork

int Daemon(void)
{
    pid_t pid;
    int i,fd;
    pid = fork();
    if(pid < 0)
    {
        printf("fork error\n");    
        return -1;
    }
    else if(pid > 0)
        exit(0);
    setsid();
    return 0;
}

int main()
{
    int ret = Daemon();
    if(ret == 0)
    {
        printf("daemon create\n");
    }
    
    while(1)
    {
        printf("hello world\n");
        sleep(5);
    }
    return ret;
}      

gcc -o daemon daemon.c

再通過 ps -aux  檢視編譯 daemon 執行是否是 ? 

[[email protected] ~]$ ps -aux | grep "daem*"
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
dbus      2060  0.0  0.0  32536  2104 ?        Ssl  Sep01   0:02 dbus-daemon --system
www       2229  0.0  0.0   3924   192 ?  

     Ss   11:55   0:00 ./daemon
 

相關推薦

linux 編寫守護程序例子 Daemon

例子如下 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>  //fork int Daemon(void)

php寫守護進程Daemon

waitpid tar cas gid 函數的參數 日誌 enabled pcntl 有一個 護進程(Daemon)是運行在後臺的一種特殊進程。它獨立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。守護進程是一種很有用的進程。php也可以實現守護進程的功能。

Java 多線程守護線程Daemon

機會 兩種 如何 產生 tex begin 就會 set final 定義 Java 中有兩種線程: 一種是用戶線程(User Thread),一種是守護線程(Daemon Thread)。 守護線程是一種特殊的線程, 它的特殊有“陪伴”的含義, 當線程中不存在非守護線程時

Linux學習之程序通訊

言之者無罪,聞之者足以戒。 ——《詩序》 ctrl+alt+t     開啟終端 一、程序間通訊和執行緒間通訊: 程序通訊:在使用者空間實現程序通訊是不可能的,通過Linux核心通訊 執行緒通訊:可以在使用者空間就可以實現,可以通過全域性變數通訊 二、通訊方式:

Linux學習之程序通訊

言之者無罪,聞之者足以戒。 ——《詩序》 命令:kill -l   可以檢視核心可以傳送多少種訊號 命令:ps -axj 可以檢視程序的狀態 訊號: 訊號通訊,其實就是核心向用戶空間程序傳送訊號,只有核心才能發訊號,使用者空間程序不能傳送訊號 訊號通訊的框架: (

Linux學習之程序通訊

言之者無罪,聞之者足以戒。 ——《詩序》 二、訊號的接收 接收訊號的程序,需要的條件:要想使接收的程序能收到訊號,這個程序就不能結束 接收訊號的函式:sleep()、while(1)、pause() sleep()函式使程序進入睡眠狀態(S) pause()函式使程

Linux學習之程序通訊

言之者無罪,聞之者足以戒。 ——《詩序》 IPC通訊 IPC通訊有三種:共享記憶體、訊息佇列、訊號燈 這個IPC物件,是存在於核心中的。而且使用者空間的檔案系統中沒有IPC檔案型別 IPC物件 IPC和檔案IO函式的比較: 檔案I/O

Linux學習之程序通訊

言之者無罪,聞之者足以戒。 ——《詩序》 訊息佇列: 鏈式佇列: msqid ds  維護訊息佇列的結構體,佇列的第一個訊息指標msg_first,最後一個訊息指標msg_last 訊息中有一個成員指標next 每一個訊息中包含有哪些內容: Data    

java多執行緒之守護執行緒Daemon

在Java中有兩類執行緒:User Thread(使用者執行緒)、Daemon Thread(守護執行緒)  用個比較通俗的比如,任何一個守護執行緒都是整個JVM中所有非守護執行緒的保姆: 只要當前JVM例項中尚存在任何一個非守護執行緒沒有結束,守護執行緒就全部工作;

linux c程式設計 程序程式設計整理

(程式碼來自《嵌入式linux應用程式開發標準教程》) 概覽: 第一部份:程序簡介 第二部份:程序控制  :命令  函式 第三部份:程序例項:  多程序  守護程序 第四部份:附加材料 linux 程序控制函式大全     第一部份:程序簡介 程序是Lin

java併發程式設計:之守護執行緒Daemon

在Java中有兩類執行緒:User Thread(使用者執行緒)、Daemon Thread(守護執行緒) 用個比較通俗的比喻,任何一個守護執行緒都是整個JVM中所有非守護執行緒的保姆:只要當前JVM例項中尚存在任何一個非守護執行緒沒有結束,守護執行緒就全部工作;只有當最後一

Linux學習——守護程序daemon

建立守護程序的步驟: 1)父程序中執行fork後,執行exit退出; 2)在子程序中呼叫setsid;(脫離控制檯) 3)讓根目錄“/”成為子程序的工作目錄; 4)把子程序的umask變為0; 5)關閉任何不需要的檔案描述符。 其中,setsid函式建立一個新會話和一個新程

用C語言在Linux系統下建立守護程序Daemon

      守護程序(daemon)是指在後臺執行的,沒有控制終端與之相連的程序。它獨立於控制終端,週期性地執行某種任務。Linux的大多數伺服器就是用守護程序的方式實現的。如web伺服器程序http等。守護程序在後臺執行,類似於Windows中的系統服務。      

go lang 後臺守護程序執行daemon

引用:https://bitbucket.org/kardianos/service service will install / un-install, start / stop, and run a program as a service (daemon).

"守護程序"daemon就是一直在後臺執行的程序

//fork執行中已經出現父和子程序,狀態一樣但不是相同的程序,兩條程序執行序都指向了fork函式內建立程序程式碼後面一句的指令集, //此時是父程序佔據cpu時間,父程序繼續執行根據fork後面的程式碼實現返回建立的pid, //子程

LINUX設備驅動程序筆記字符設備驅動程序

準備 p s con 文件系統 write post container form nod <一>.主設備號和次設備號 對字符設備的訪問時通過文件系統內的設備名稱進行的。那些設備名稱簡單稱之為文件系統樹的節點,它們通常位於/dev文

Linux下PCI設備驅動程序開發 --- PCI驅動程序實現

傳輸 char rep roc register case 負責 ava b- 三、PCI驅動程序實現 1. 關鍵數據結構 PCI設備上有三種地址空間:PCI的I/O空間、PCI的存儲空間和PCI的配置空間。CPU可以訪問PCI設備上的所有地址空間,其中I/O空間和存儲空間

linux系統程序安裝rpm工具

erl fields program 軟件 方法 owin lib 直接 源碼安裝 linux系統下程序安裝主要采用三種方式:1、rpm,有點類似.msi 和.exe比較類似,軟件包(相當於windows的某個程序的所有文件)的安裝路徑和文件名稱基本是固定的,但是他不會安裝

linux系統程序安裝yum工具

sync 內容 sim lean provide for 就是 grep 大型 yum安裝工具類似appstore,運用yum工具可以方便的下載所需的程序,同時yum工具會自動檢查程序的依賴關系,並安裝相應的依賴包,有點像windows的某些大型軟件安裝程序會自動檢查幫你安

linux系統程序安裝yum工具2-yum源管理

內容 centos 備份 hang clean 原生 yum 聯網 系統 繼續我們的yum工具應用之旅,yum工具之所以方便就是因為有方便的在線雲庫,實際工作中我們可能沒辦法鏈接互聯網,或者我們想安裝的程序原生源那麽我們能不能用其他方式應用方便的yum源呢? 一、使用光盤