其實原理很簡單,使用Launchd創建一個開機啟動的服務,然后這個服務關聯/etc/rc.local文件,那么接下來操作rc.local就和Linux下一樣的了。
當然,這種思路還可以直接使用在~/.bashrc文件上,但是這種方式有個弊端,就是權限不是root,所以適用范圍小很多。而通過這個服務創建的文件,在里面執行腳本的用戶是root,權限是最高的。
說明:關於launchd的用戶直接上蘋果開發者網站查詢,線索可以是這個launchctl
實現步驟:
進入/Library/LaunchDaemons
目錄
cd /Library/LaunchDaemons
創建一個plist文件
sudo vim local.localhost.startup.plist
復制以下內容到文件保存。(按【Esc】,然后輸入【:wq!】,回車)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>local.localhost.startup</string> <key>Disabled</key> <false/> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> <key>LaunchOnlyOnce</key> <true/> <key>ProgramArguments</key> <array> <string>/etc/rc.local</string> </array> </dict> </plist>
使用launchctl添加為服務
sudo launchctl load -w ./local.localhost.startup.plist
最后創建rc.local文件,
sudo vim /etc/rc.local
在里面寫好需要開機執行的命令。記得賦予rc.local
文件x
權限(可執行)
sudo chmod +x /etc/rc.local
參考:
http://blog.csdn.net/maxsky/article/details/55061453(以上內容部分轉自此篇文章,刪減了對話)