Linux守護進程是Linux的后臺服務(wù)進程,相當于Windows服務(wù),對于為Linux開發(fā)服務(wù)程序的朋友來說,Linux守護進程相關(guān)技術(shù)是必不可少的,因為這個技術(shù)不僅僅是為了開發(fā)守護進程,還可以拓展到多進程,父子進程文件描述符共享,父子進程通訊、控制等方面,是實現(xiàn)Linux大型服務(wù)的基礎(chǔ)技術(shù)之一。
去年我也曾寫了一篇關(guān)于守護進程的帖子,名字叫《.NET跨平臺實踐:用C#開發(fā)Linux守護進程》,這篇文章的的確確實現(xiàn)了一個Daemon,不過,它有一個弱點,不能運行多線程!
這篇帖子的目的就是進一步完善,讓我們寫出一個功能完整,可以用于生產(chǎn)環(huán)節(jié)的基本的守護進程。
先帖代碼(假設(shè)項目名是daemon):
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 * 一個完整的linux daemon示例,作者宇內(nèi)流云 * 11 ********************************************/ 12 13 namespace daemon 14 { 15 class Program 16 { 17 18 const string DaemonTag = "--daemon."; 19 &