delphi 10.2 支援linux, 而且官方隻是支援指令行程式設計,目地就是做linux 伺服器端的開發。
既然是做linux伺服器端的開發,那麼普通的指令行運作程式,然後等待開一個黑視窗的方式就
太low了(目前就有個别語言大咖,經常在Windows 上開個黑視窗,看起來非常惡心),那麼如果
避免這個尴尬的問題?
其實Linux 下也有類似windows 服務的功能,Linux Daemon 就是其中的一種方式,指令行運作後
直接傳回,同時在背景建立一個同樣的程序。接受用戶端的通路。常見的一些linux 服務基本上都是
今天我們就使用delphi 來開發一個背景的http server, 來說明delphi 如何開發linux 的Daemon.
建立工程,建一個控制台應用。

因為這個隻能在linux 運作,是以直接加入linux 支援。
因為我們要做http server, 要放一些控件,是以再加一個datamodule.
然後在datamodule 上放一個Tidhttpserver 控件。
在oncommandget 裡面加入以下事件。
好了。
我們回到工程檔案
輸入以下代碼
編譯運作。
首先我們看一下系統中的運作程序: ps -ef
裡面沒有Project2 的任何資訊。
我們運作這個程式
運作完後,程式立即就傳回了
我們在看看系統程序裡面的情況
我們可以看見這個Project2 依然在程序中。
那麼這個程序是否可以正常工作呢?
我們打開浏覽器,看看情況如何?
可以看見這個這個程式在後面運作的非常正常。
當然了,由于這是一個demo, 我沒有做太多的處理,其實由于daemon 程序無法與前台直接互動,我們以後寫這種應用時。
應該多用 日志 檔案來記錄運作情況,一般出問題時,能夠快速的找到問題的根源。
那麼這個程式一直在背景運作,我們再次編譯和釋出時,就沒辦法覆寫了,怎麼關掉這個背景程序呢?
辦法很簡單,也很粗暴(反正我喜歡)。
使用linux 的kill 指令。
找到該應用的pid, 直接幹掉
然後使用ps -ef 看看
Project2 已經不在了,整個世界清靜了。