Mac 後台服務

2022-04-12 09:02:19 字數 2037 閱讀 1002

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一般是當成一條使用者命令...