Linux守護(hù)進(jìn)程是Linux的后臺服務(wù)進(jìn)程,相當(dāng)于Windows服務(wù),對于為Linux開發(fā)服務(wù)程序的朋友來說,Linux守護(hù)進(jìn)程相關(guān)技術(shù)是必不可少的,因?yàn)檫@個(gè)技術(shù)不僅僅是為了開發(fā)守護(hù)進(jìn)程,還可以拓展到多進(jìn)程,父子進(jìn)程文件描述符共享,父子進(jìn)程通訊、控制等方面,是實(shí)現(xiàn)Linux大型服務(wù)的基礎(chǔ)技術(shù)之一。

去年我也曾寫了一篇關(guān)于守護(hù)進(jìn)程的帖子,名字叫《.NET跨平臺實(shí)踐:用C#開發(fā)Linux守護(hù)進(jìn)程》,這篇文章的的確確實(shí)現(xiàn)了一個(gè)Daemon,不過,它有一個(gè)弱點(diǎn),不能運(yùn)行多線程!

這篇帖子的目的就是進(jìn)一步完善,讓我們寫出一個(gè)功能完整,可以用于生產(chǎn)環(huán)節(jié)的基本的守護(hù)進(jìn)程。

先帖代碼(假設(shè)項(xiàng)目名是daemon):

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

  1 using System;  2 using System.Threading;  3 using System.Timers;  4 using System.Runtime.InteropServices;  5 using System.IO;  6 using System.Text;  7   8   9 /******************************************** 10  * 一個(gè)完整的linux daemon示例,作者宇內(nèi)流云 * 11  ********************************************/ 12  13 namespace daemon 14 { 15     class Program 16     { 17  18         const string DaemonTag = "--daemon."; 19  &