由於工作的原因,近期調查了一下mac系統下常駐服務的接收websocket信息和創建進程的方法原理。將具體實現細節記錄下來備忘。
(一).准備工作
1.安裝brew,在終端中輸入:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
注意:如果當前的用戶是管理員,需要對權限進行許可,在執行上面的指令前先執行:sudo chmod -R g+w /usr/local
2.安裝boost
(a).brew install boost
(b).添加boost環境變量,vi ~/.bash_profile
超文件的結尾添加BOOST_LIBS=/usr/local/lib;BOOST_INCLUDES=/usr/local/include/boost;
3.安裝openssl
(a).下載並解壓openssl
(b).sudo ./config --prefix=/usr/local/openssl
(c).make;make install
(d).添加openssl環境變量,vi ~/.bash_profile
朝文件的尾部添加:OPENSSL_PATH=/usr/local/opt/openssl
4.下載websocketpp源代碼
(二)websocketpp集成工程配置
1.創建一個xcode command line tools工程
2.設置好Herder文件,lib文件搜尋路徑和連接庫參數


3.編寫code,並編譯成可執行文件
(三)創建一個 mac 的后台進程(daemon)
1.編寫plist文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.liuxt.cmdservice</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Shared/cmdservice</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
3.將編譯好的command line service可執行程序copy到
/Users/Shared/
目錄下,將plist文件copy到
/Library/LaunchDaemons/目錄下
4.重啟mac筆記本,可以發現command line service程序已經運行起來了