mac 的後台服務通過launchctl
工具實現(也可以使用linux下的crontab
),但官方建議使用launchctl
。
使用launchctl
非常簡單,根據需要編寫plist指令碼即可。plist指令碼存放路徑為/library/launchdaemons或/library/launchagents
,其區別是後乙個路徑的指令碼當使用者登陸系統後才會被執行,前乙個只要系統啟動了,哪怕使用者不登陸系統也會被執行。
可以通過brew services list
檢視
name status user plist
elasticsearch stopped
[email protected] started longxingjian /users/longxingjian/library/launchagents/[email protected]
redis started longxingjian /users/longxingjian/library/launchagents/homebrew.mxcl.redis.plist
<?xml version="1.0" encoding="utf-8"?>
keepalive
successfulexit
label
homebrew.mxcl.redis
programarguments
/usr/local/opt/redis/bin/redis-server
/usr/local/etc/redis.conf
--daemonize no
runatload
workingdirectory
/usr/local/var
standarderrorpath
/usr/local/var/log/redis.log
standardoutpath
/usr/local/var/log/redis.log
<
說明:
+runatload
選項表示是否在系統載入的時候就啟動服務,我將redis
服務在自己的機器上設定為否(因為我只做測試使用平時不需要redis
服務)。
+keepalive
選項表示是否該服務是否一直執行
開啟ssh
服務
$ sudo launchctl load -w /system/library/launchdaemons/ssh.plist
關閉ssh
服務
$ sudo launchctl unload /system/library/launchdaemons/ssh.plist
brew services list # 檢視使用brew安裝的服務列表
brew services run formula|--all # 啟動服務(僅啟動不註冊)
brew services start formula|--all # 啟動服務,並註冊
brew services stop formula|--all # 停止服務,並取消註冊
brew services restart formula|--all # 重啟服務,並註冊
brew services cleanup # 清除已解除安裝應用的無用的配置
/library/launchdaemons # 開機自啟,需要sudo
~/library/launchagents # 使用者登入後自啟
reference
使用brew services管理服務
mac 開機自啟動配置設定方法(定時任務解決方案)
後台服務小點
很多東西本來就存在,只是自己不懂,記錄在此,以便日後複習唄。今天碰到乙個問題就是專案中的靜態頁面是分開的,比如當面部落格頁面,它的頭是單獨的乙個html檔案,而下來的內容又是另外乙個,從專案本身以及在布置到伺服器上都沒有發現拼裝過程,於是好奇之,這是為啥呢,原來nginx早已具有這樣的功能,就是ss...
Linux 後台服務
方法一 fork方式 1.fork乙個子程序,父程序退出,子程序成為孤兒程序,被init程序接管 2.呼叫setsid建立新的程序會話 3.將當前工作目錄切換到根目錄 4.將標準輸入,輸出,出錯重定向到 dev null linux後台程序,fork方式 include include includ...
nodejs 後台服務啟動
但是終端連線到伺服器,執行node server.js,退出終端之後,服務就停止執行了。原以為 node server.js 或者 nohup node server.js dev null 2 1 能輕鬆的解決,後來發現完全不是那麼回事.谷歌了一番資料,了解到 nodejs一般是當成一條使用者命令...